Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

WWW::Mechanize input value

by packetstormer (Monk)
on Aug 04, 2012 at 13:48 UTC ( #985430=perlquestion: print w/replies, xml ) Need Help??
packetstormer has asked for the wisdom of the Perl Monks concerning the following question:


I have a very small, standard connection to website that gets the value of an input field. I can get the value and print it fine, but I cannot assign it to a variable!!! Can anyone see why this is:

.... my $mech = WWW::Mechanize->new(agent => 'Windows IE 6'); my $url = ""; $mech->get($url); # This next line prints, to screen, the value as expected print "Value: " . $mech->field('sessionid'); # These next 2 lines prints nothing! my $sessionid = $mech->field('sessionid'); print "$sessionid\n";
Can anyone see why this might be!?

Replies are listed 'Best First'.
Re: WWW::Mechanize input value
by Athanasius (Chancellor) on Aug 04, 2012 at 14:40 UTC

    Hello packetstormer,

    The WWW::Mechanize->field method is actually for setting the field value. Your first call sets the value of 'sessionid' to undef (since no second argument is supplied), and returns the previous value. Your second call gets the new, empty value.

    Use the WWW::Mechanize->value method instead. This gets the field value without the side effect of resetting it:

    my $mech = WWW::Mechanize->new(agent => 'Windows IE 6'); my $url = ""; $mech->get($url); print "Value: '", $mech->value('sessionid'), "'\n"; my $sessionid = $mech->value('sessionid'); print "\$sessionid = '$sessionid'\n";

    See WWW::Mechanize, under “FIELD METHODS.”


    Athanasius <°(((><contra mundum

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://985430]
Approved by ww
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (5)
As of 2017-11-18 03:16 GMT
Find Nodes?
    Voting Booth?
    In order to be able to say "I know Perl", you must have:

    Results (277 votes). Check out past polls.