sub readlexicon { my $fn=shift; open(IN,$fn); my %lexicon=(); my $contents=join('',); close(IN); $contents=~s/package Apache\:[^\;]+//; $contents=~s/use base[^\;]+//; eval($contents.'; %lexicon=%Lexicon;'); delete $lexicon{'_AUTO'}; delete $lexicon{'char_encoding'}; delete $lexicon{'language_code'}; return %lexicon; } my %master=(); foreach (<*.pm>) { print "Reading: ".$_."\n"; %master=(%master,&readlexicon($_)); } foreach (<*.pm>) { print "Synching: ".$_."\n"; my %lang=&readlexicon($_); copy ($fn,$fn.'.original'); open(IN,$fn.'.original'); open(OUT,'>'.$fn); my $found=0; foreach () { if ($_=~/\#\s*SYNCMARKER/) { $found=1; last; } print OUT $_; } if ($found) { print OUT "\n\#SYNC ".localtime."\n"; print OUT "\n\#SYNCMARKER\n"; foreach () { print OUT $_; } } close (IN); close (OUT); }