raphael() wrote:
> Hi,
>
> I am trying to understand WWW::Mechanize
>
> I understand that the downloaded content is stored in content().
> Why am I not able to use a regex on it in scalar form?
>
> ------code------
>
> use strict;
> use warnings;
> use WWW::Mechanize;
>
> my $mech = WWW::Mechanize->new();
> $mech->get("http://checkip.dyndns.org");
> my $last_page = $mech->content(); # last page fetched
>
> # this works if I store content in an array @last_page
> # for ( @last_page ) {
> # if ( m/([\d+.]+)/ ) {
> # print "$1\n";
> # }
> # }
>
> # ( my $ip ) = grep/(\d+\.)/, $last_page;
>
> ( my $ip = $last_page ) =~ m/([\d+\.]+)/;
> print "$ip\n";
>
> ------end------
>
> my $ip gets the whole source page as its value.
>
> --
> Got it while writing out this post :)
> --
>
> Now the question becomes what is the difference between these two?
>
> ( my $ip = $last_page ) =~ m/([\d+\.]+)/;
>
> ( my $ip ) = ( $last_page ) =~ m/([\d+\.]+)/;
>
> I think the above one is "wrong syntax" for using list context?
>
> Also how can I make grep work?
>
> ( my $ip ) = grep/(\d+\.)/, $last_page;
>
Try:
my ( $ip ) = $last_page =~ m/([\d\.]+)/;
This will capture the first one. To get more than one:
my @ips = $last_page =~ m/([\d\.]+)/g;
grep() works on lists. See `perldoc -f grep` for details.
--
Just my 0.00000002 million dollars worth,
Shawn
Programming is as much about organization and communication
as it is about coding.
I like Perl; it's the only language where you can bless your
thingy.
Eliminate software piracy: use only FLOSS.
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/