in reply to Re: check for undefined param name
in thread check for undefined param name

As was pointed out, it might be better to check using length instead of defined. Remember that zero is false, so a straight logic check will not tell you if it is supplied but zero. Consider:
unless ($query->param('is_a_chicken')) # Fails on 0 { print "You must choose an option.<BR>\n"; }
As your appropriate values might be 0 or 1, this is going to fail on a valid submission. Better to have:
unless (length $query->param('is_a_chicken')) { print "You must choose an option.<BR>\n"; }
Though length does tend to complain about being forced to deal with undefined strings. This will lead to the more verbose but equally more robust version:
my $is_a_chicken = $query->param('is_a_chicken'); unless (defined ($is_a_chicken) && length ($is_a_chicken)) { print "You must choose an option.<BR>\n"; }
Of course, if you were doing this sort of thing all the time you could make a quick helper method to do it quickly:
sub provided { return defined($_[0]) && length ($_[0]); }
Which would simplify as follows:
unless (provided ($query->param('is_a_chicken')) { print "You must choose an option.<BR>\n"; }