#!/usr/bin/perl use strict; use GDBM_File; my $dirprefix = "/home/httpd/html/adm/help/"; # if the topic hash exists, kill it unlink 'fragmentLabels.gdbm' if ( -e $dirprefix . 'fragmentTopics.gdbm' ); tie (my %fragmentLabels, 'GDBM_File', $dirprefix . 'fragmentLabels.gdbm', 1, 0); my $error = 0; chdir $dirprefix; while (<*.tex>) { my $file; $file = $_; open F, $file; my $contents = join("\n", ); my $label; # Search for labels, of the form '\label{labelname}' foreach $label ( $contents =~ /\\label\{([^}]*)\}/g ) { if (exists $fragmentLabels{$label} ) { print "***ERROR: '$label' in both $fragmentLabels{$label} " . "and $file. \n"; $error = 1; } $fragmentLabels{$label} = $file; } } if ($error == 0) { print "There were no duplicate labels. Database rebuilt.\n"; } else { print "There were errors. You must correct the duplicate labels.\n"; } untie %fragmentLabels;