#!/usr/bin/perl -w use strict; use LWP::Simple qw(mirror); =pod With this script we try to check if the files specifying the MAB2 standard have changed since the last download. If there are newer files, they are downloaded and we call the external diff program to see what has changed. Copying the changed file into the according module is left to manual intervention. =cut my $baseurl = qq{ftp://ftp.ddb.de/pub/mab/}; my(%map) = qw( segm000 Base adressmab NULL gkdmab gkd lokalmab lokal notatmab NULL pndmab pnd swdmab swd titelmab titel ); my $all304 = 1; for my $doc (keys %map) { my $url = "$baseurl$doc.txt"; my $code = mirror $url, "$doc.txt" or die "Could not get $url"; warn "doc[$doc]code[$code]"; $all304 = 0 unless $code == 304; } if ($all304) { print "No document has changed since last download.\n"; exit; } for my $doc (keys %map) { next if $map{$doc} eq "NULL"; local $/; open F, "$map{$doc}.pm" or die "Could not open $map{$doc}.pm: $!"; my $pm = ; open F, "$doc.txt" or die "Could not open $doc.txt: $!"; my $txt = ; close F; $pm =~ s/^.*__DATA__\n//s; if ($pm eq $txt) { print "Document $doc unchanged\a\n"; sleep 2; next; } system "diff -u $map{$doc}.pm $doc.txt|less"; print "Enter RET\n"; my $foo = <>; }