in reply to param = 0, not NULL


undef, 0 and '' will all cause the default value to be set. The simplest way to check whether your param( 'choice' ) has any or no value is the use of defined

my ( $a, $b, $c ) = ( 0, '', undef ); print defined $a, " -0-\n"; # prints 1 -0- print defined $b, " --\n"; # prints 1 -- print defined $c, " undef"; # prints 0 undef

Hope it helps.

if( exists $aeons{strange} ){ die $death unless ( $death%2 ) }