if( SvIOK($x) ? 0 == $x : '0' eq $x ) #### if( do{ no warnings; 0==$x } && SvIOK($x) ) #### if( ( SvIOK($x) || looks_like_a_number($x) ) && 0 == $x ) #### if( do { my $w= 0; local($SIG{__WARN__})= sub { $w= 1 }; 0 == $x && ! $w } )