perl -E ' use Scalar::Util "looks_like_number"; for (qw{Inf -Inf Infinity -Infinity}) { say "$_: ", looks_like_number($_) ? 1 : 0; } ' Inf: 1 -Inf: 1 Infinity: 1 -Infinity: 1 #### perl -E ' use Scalar::Util "looks_like_number"; for (qw{1 0b10 0o10 0x10}) { say "$_: ", looks_like_number($_) ? 1 : 0 } ' 1: 1 0b10: 0 0o10: 0 0x10: 0 #### perl -E ' use Scalar::Util "looks_like_number"; for (1, 0b10, 0o10, 0x10) { say "$_: ", looks_like_number($_) ? 1 : 0 } ' 1: 1 2: 1 8: 1 16: 1 #### sub IsNumber { state $re = qr{...}; return $_[0] =~ $re; } #### { my $re; BEGIN { $re = qr{...} } sub IsNumber { return $_[0] =~ $re; } } #### $ perl -E 'say 1e6' 1000000 #### $ perl -E 'say 1_000_000/1_000' 1000