#
# Takes a list of file names and lists the URLS they link by A tags.
# May have trouble with anchors which are not all on the same line.
#
use strict;
#
# Scan a file and print all the URL's it links to.
sub scan {
    my ($fn) = @_;
    open(IN, $fn) or return 0;
    # Go through each line in the file.
    while(<IN>) {
        # Repeatedly match URLs in the line.  Each one is removed by
        # replacing it with the empty string.  The loop body will execute
        # once for each match/replace, and prints the URL part of the
        # matched text.
        while(s/<\s*A\s+[^>]*HREF\s*\=\s*"([^"]+)"//i) {
            print "   $1\n";
        }
    }
    close IN;
    return 1;
}
# 
# Process each command-line argument as a file.
while(my $fn = shift @ARGV) {
    print "$fn:\n";
    if(!scan($fn)) { print "[Open $fn failed: $!]\n"; }
}