in reply to param = 0, not NULL

The || operator evaluates '0' as false. You appear from your comments to want to check the length rather than the Perl logical value, e.g.:
#!/usr/bin/perl -w use strict; use CGI qw/:standard/; my $q = new CGI; my $choice = param('choice'); length( $choice ) or $choice = 1;

-M

Free your mind