#!/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}) 
	    : "<NONE SPECIFIED>",
	$url;
} 

__END__