As previously noted your parsing is broken. If you really want to use REs something like this is *less broken*
use LWP::Simple; use Data::Dumper; my $content = get('http://www.perlmonks.com') or die $!; $content =~ s/\s+/ /g; # condense whitespace (optional) my @meta = $content =~ m/<\s*meta([^>]+)>/gi; for ( @meta ) { m/name\s*=\s*"([^"]+)/i # double quotes || m/name\s*=\s*'([^']+)/i # single quotes || m/name\s*=\s*(\S+)/i # no quotes || m/http-equiv\s*=\s*"([^"]+)/i || m/http-equiv\s*=\s*'([^']+)/i || m/http-equiv\s*=\s*(\S+)/i || next; my $name = $1; m/content\s*=\s*"([^"]+)/i || m/content\s*=\s*'([^']+)/i || m/content\s*=\s*(\S+)/i || next; $meta{$name} = $1; } print Dumper \%meta;
cheers
tachyon
In reply to Re: Critique/Test my first module MetaParser
by tachyon
in thread Critique/Test my first module MetaParser
by sulfericacid
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |