stanislav5000 has asked for the wisdom of the Perl Monks concerning the following question:

I'm writing a script to do various input field validations. The intent is to parse forms, parse input fields, match input field names to regex's, and only fill in and submit forms that match those regex's. I'm getting:
Hit form loop on form:1 Hit inputfield loop Setting submit=0 Setting submit=0 Setting submit=0 Setting submit=0 Hit inputfield loop Setting submit=0 Setting submit=0 Hit inputfield loop Setting submit=0 Setting submit=0 Setting submit=0 No such field 'firstname' at X:/Perl/site/lib/WWW/Mechanize.pm line 57 +1
The code is:
#!/usr/bin/perl use WWW::Mechanize ; #Prepopulated Information my $fname="Test"; my $lname="User"; my $address="1234 Example Street"; my $city="New York"; my $state="New York"; my $zip="10010"; my $phone="2135555555"; my $submit=1; #Create new WWW::Mechanize object my $mech = WWW::Mechanize->new ; #Fetch URL or Die Tryin' $mech ->get("http://www.videoguys.com/catalog.htm") ; die $mech ->res->status_line unless $mech ->success ; #Return list of forms found in the last fetched page to hand off to HT +ML::Form my @webforms = $mech->forms(); #Examine each form foreach my $form (@webforms) { my @inputfields = $form->param; #Examine each input field foreach my $inputfield (@inputfields) { if($inputfield =~ m/(F|f)(irst)?name/) { $mech->set_fields( $inputfield => $fname); print "matched firstname regex\n"; } if($inputfield =~ / (L|l)(ast)?name/) { $mech->set_fields( $inputfield => $lname); } if($inputfield =~ /(A|a)ddress[123]?/) { $mech->set_fields( $inputfield => $address); } if($inputfield =~ /(C|c)ity/) { $mech->set_fields( $inputfield => $city); } if($inputfield =~ /(S|s)tate/) { $mech->set_fields( $inputfield => $state); } if($inputfield =~ /(Z|z)ip/) { $mech->set_fields( $inputfield => $zip); } if($inputfield =~ /(P|p)hone/) { $mech->set_fields( $inputfield => $phone); } else { $submit=0; print "Setting submit=0\n"; } # Submit Completed Form or Die Tryin' if($submit==1) { $mech ->submit_form ; die $mech ->res->status_line unless $mech ->success ; # If the form sends you somewhere, you can catch it : my $new_url = $mech ->response->request->uri->as_string ; } } }