http://www.perlmonks.org?node_id=315766


in reply to HTTP::Form and invalid radio button values

Modifying your code so I can run this ... I get Illegal value 'invalid_value' for field 'new_animals' at C:/Perl/site/lib/WWW/Mechanize.pm line 541 (you should've mentioned the error message you got).

So I crack open WWW/Mechanize.pm and see this is resulting from a ->value call on a form.

So I check the HTML::Form docs for value and read If the input only can take an enumerated list of values, then it is an error to try to set it to something else and the method will croak if you try.

So what do I do, that's right, I bust out Data::Dumper and discover (via ->find_input)

$VAR1 = bless( { 'seen' => [ 1, 0 ], 'menu' => [ undef, 'baboon' ], 'multiple' => 'multiple', 'name' => 'new_animals', 'current' => 0, 'size' => '10', 'type' => 'option', 'value_names' => [ 'off', 'baboon' ] }, 'HTML::Form::ListInput' );
Can you guess what I'd try next?

I hope this has been informational :)

update: on a sidenote, for testing purposes I was using the cookie.cgi file from the CGI.pm distribution (i was not calling anyone a baboon)

MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
** The third rule of perl club is a statement of fact: pod is sexy.

Replies are listed 'Best First'.
Re: Re: HTTP::Form and invalid radio button values
by cees (Curate) on Dec 19, 2003 at 13:50 UTC
    Modifying your code so I can run this ... I get Illegal value 'invalid_value' for field 'new_animals' at C:/Perl/site/lib/WWW/Mechanize.pm line 541 (you should've mentioned the error message you got).

    You're right, I should have included the error message. I did mention that HTML::Form performed as advertized, but I see now that it was not very clear.

    So what do I do, that's right, I bust out Data::Dumper and discover (via ->find_input). Can you guess what I'd try next?

    You want me to play with the class data directly??? I guess I may need to resort to that, but that would make my code brittle. I guess HTML::Form is stable enough that it's internal class data will probably not change in the future, but that is somethng I can not guarantee... I guess it if does happen my test will just fail, and I will be notified that there is a problem and can hunt it down, so it's not terrible.

    Thanks

    - Cees