#!/usr/bin/perl -w # # surl -- tchrist@perl.com # # sort URLs fed via stdin or in files on command line, e.g. # $ surl file_with_list_of_urls nuther_such_file # $ perl -lne 'print $1 while /HREF\s*=\s*"(http.*?)"/gi' file.html | surl # # retrieve Perl source from # http://www.perl.com/CPAN/src/5.0/latest.tar.gz # retrieve the LWP library from # http://www.perl.com/cgi-bin/cpan_mod?module=LWP use strict; require 5.002; require LWP::UserAgent; require HTTP::Request; my($url, %Date); while ( $url = <> ) { my($req, $ua, $ans); chomp $url; warn "FETCHING $url\n"; $req = new HTTP::Request "HEAD", $url; $ua = new LWP::UserAgent; $ans = $ua->request($req); if ($ans->is_success) { $Date{$url} = $ans->last_modified || 0; # unknown } else { warn "$url: Error [", $ans->code, "] ", $ans->message; } } foreach $url ( sort { $Date{$b} <=> $Date{$a} } keys %Date ) { printf "%-25s %s\n", $Date{$url} ? (scalar localtime $Date{$url}) : "", $url; } __END__