##################################### # PLAY WITH THE PERLMONKS SITE (1). # ##################################### use LWP::Simple ; $|=1; my $node = '185131' ; my $url = "http://www.perlmonks.org/index.pl?node_id=$node" ; if ($node =~ /^http:\/\//) { $url = $node ;} print "Getting node $node...\n" ; print "$url\n" ; $html = get($url); my $lng = length($html) ; print "$lng bytes.\n\n" ; $html =~ s/\r\n?/\n/gs ; my (@codes) = ( $html =~ /
(.*?)<\/font><\/tt><\/pre>/gsi ); foreach my $code ( @codes ) { $code =~ s/\n \+<\/font>//gi ; $code = filter_from_html($code) ; print "# CODE #################################################\n" if ($#codes > 0) ; print "$code\n" ; } #################### # FILTER_FROM_HTML # #################### sub filter_from_html { my ( $code ) = @_ ; my %SYMBOLS_html = ( 'acute' => 'aeiouAEIOU#áéíóúÁÉÍÓÚ' , 'grave' => 'aeiouAEIOU#àèìòùÀÈÌÒÙ' , 'circ' => 'aeiouAEIOU#âêîôûÂÊÎÔÛ' , 'uml' => 'aeiouAEIOU#äëïöüÄËÏÖÜ' , 'tilde' => 'aoAO#ãõÃÕ' , 'cedil' => 'cC#çÇ' , 'lt' => '#<' , 'gt' => '#>' , 'quot' => '#"' , ) ; $code =~ s/(\d{1,3});/pack("C",$1)/eg; $code =~ s/&?/&/gsi ; $code =~ s/ ?/ /gsi ; my ($start,$end,@letras1,@letras2,$max); foreach my $Key ( keys %SYMBOLS_html ) { ($start , $end) = split('#' , $SYMBOLS_html{$Key}) ; @letras1 = split('' , $start) ; @letras2 = split('' , $end) ; $max = $#letras1 ; if ($#letras2 > $max) { $max = $#letras2 ;} for(0..$max) { $code =~ s/\&$letras1[$_](?i:$Key);?/$letras2[$_]/g ; } } return( $code ) ; } ####### # END # #######