use strict; use warnings; use LWP::Simple 'get'; use vars qw( $URL ); $URL = 'http://perlmonks.org/?node_id=131'; exit main( @ARGV ); sub main { my $continue = 1; my $prev = ~0; my %days; $days{$_}++ for grep { $continue && $_ <= $prev ? do { $prev = $_; $continue } : do { $continue = 0 } } get( $URL ) =~ m( (?s:.+?) on \s+ [ADFJMNOS]\S+ \s+ (\d+) [\d\s,]+\s+ at \s+[\d:]+)xigs; print "Dates of nodes on the Monastery Gates\n" . join '', map sprintf( "% 02d: %s\n", $_, '*' x $days{$_} ), sort { $b <=> $a } keys %days; }