The worst-case similar scenario I have encountered is where 0, '', undef(), "NULL", "null", "N/A" and "NA" all had to evaluate false and just about everything else as true. Commenting out my extra NA requirement would produce something like:
if ( True( $value ) ) {
}
else {
}
sub True {
defined $_[0]
and $_[0]
and ( uc( $_[0] ) ne "NULL" )
# and $_[0] !~ /^N\/?A$/
;
}