http://qs321.pair.com?node_id=11115779


in reply to Re^2: running an example script with WWW::Mechanize* module
in thread running an example script with WWW::Mechanize* module

There is a misunderstanding of $mech->success - this method only reflects whether the last HTTP response from the server is considered an error or not. It does not reflect whether the last operation on $mech was successful or not. Error checking is usually done by die by WWW::Mechanize::Chrome.

I haven't run your code, but the log output suggests that the form you're looking at has no name:

say $mech->current_form->{name}; # ?? # Use of uninitialized value in say at ./5.pluto.pl line 55.

The form is not great, because it really contains three fields with the same name date, so you will have to fetch the individual fields and explicitly set them:

# largely untested my @date_fields = $mech->selector('.//*[@name="date"]', node => $self- +>current_form ); $mech->set_field( $date_fields[1] => $guess );

In the next version, I'll actually implement the arrayref form of ->set_fields() for values of index larger than one :) But that means breaking my (incompatible) API to restore the WWW::Mechanize API so I'll have to look carefully there.

$mech->set_fields( $name => [ 'foo', 2 ] );