my $ok; # it's undef if( ... ){ # going to actually set it $ok = $password eq $pass ? 1 : 0 } ... if($ok){ # do good stuff } ... if(!$ok){ # if failed for any reason } ... if(defined $ok && !$ok){ # if set to false } ... if(! defined $ok){ # if unset } ... printf "Status: %s\n", (defined $ok ? ($ok?'yes':'no') : 'n/a');