use Devel::Peek; $a = 0; scalar "$a"; Dump($a); # prove it's a PVIV with IOK and POK set print is_number($a); # returns true sub is_number { ( $_[0] & ~ $_[0] ) eq '0' }