in reply to differences between eq "" and !

False in Perl is "", 0, undef. So
$scalar eq "" => (implies) !$scalar
but
!$scalar => (implies) one of: ($scalar eq "") ($scalar == 0) (defined $scalar eq "")
but that can't be transformed naïvely to a conjunction (with or or ||) without warnings for some values.