#!/usr/bin/perl -w use LWP::UserAgent; use URI::URL; use HTTP::Response; $| = 1; #disable output buffering ###### FLUFF ###### print < Jacob A. Siehler, W&L Mathematics
Home Computing
ENDTOPMATTER print "

When * sneezes...

"; ###### /FLUFF ###### sub commify { (@_ == 0)? '' : (@_ == 1)? $_[0] : (@_ == 2)? join(" and ",@_) : join(", ", @_[0..($#_-1)], "and $_[-1]"); }; my $baseurl = "http://www.google.com"; my $querystring = "/search?q=\"When * sneezes * catches\""; my $junk='[\s,]*'; print "

Data courtesy of Google.

\n"; my $ua=LWP::UserAgent->new(); $ua->agent("FoxFox/v6.9"); my $reponse; my %hash; while ($querystring) { $response = $ua->get( $baseurl.$querystring."&filter=0", #$baseurl.$querystring, Referer=>"http://www.google.com" ); my $content = $response->content(); $content =~ s/\n//g; $content =~ s/
//g; if ($content =~ /a href=([^<]*)>When$junk(.*?)$junksneezes$junk(.*?)$junkcatches:gi) { my $sneezer = ucfirst(lc($1)); my $catcher = ucfirst(lc($2)); $hash{$sneezer}{$catcher}=1 ; }; }; for $sneezer (sort keys %hash) { print "

\n"; print "When $sneezer sneezes,\n"; print "

"; my $count=0; my @catchers=(); for $catcher (sort keys %{$hash{$sneezer}}) { $count++; if ($hash{$catcher}) { push @catchers, "$catcher"; } else { push @catchers, $catcher; }; }; print commify(@catchers); print "

", (($count>1)? "catch " : "catches "), "something.


\n"; print "
"; }; print < ENDBOTTOMMATTER