10Sstevel@tonic-gate#!./perl 20Sstevel@tonic-gate 30Sstevel@tonic-gateuse strict; 40Sstevel@tonic-gateuse warnings; 56812Sraf 66812Srafuse Test::More tests => 19; 70Sstevel@tonic-gateuse Scalar::Util qw(looks_like_number); 80Sstevel@tonic-gate 90Sstevel@tonic-gateforeach my $num (qw(1 -1 +1 1.0 +1.0 -1.0 -1.0e-12)) { 100Sstevel@tonic-gate ok(looks_like_number($num), "'$num'"); 110Sstevel@tonic-gate} 120Sstevel@tonic-gate 130Sstevel@tonic-gateis(!!looks_like_number("Inf"), $] >= 5.006001, 'Inf'); 140Sstevel@tonic-gateis(!!looks_like_number("Infinity"), $] >= 5.008, 'Infinity'); 150Sstevel@tonic-gateis(!!looks_like_number("NaN"), $] >= 5.008, 'NaN'); 160Sstevel@tonic-gateis(!!looks_like_number("foo"), '', 'foo'); 170Sstevel@tonic-gateis(!!looks_like_number(undef), '', 'undef'); 180Sstevel@tonic-gateis(!!looks_like_number({}), '', 'HASH Ref'); 190Sstevel@tonic-gateis(!!looks_like_number([]), '', 'ARRAY Ref'); 200Sstevel@tonic-gate 216812Srafuse Math::BigInt; 220Sstevel@tonic-gatemy $bi = Math::BigInt->new('1234567890'); 236812Srafis(!!looks_like_number($bi), 1, 'Math::BigInt'); 240Sstevel@tonic-gateis(!!looks_like_number("$bi"), 1, 'Stringified Math::BigInt'); 250Sstevel@tonic-gate 260Sstevel@tonic-gate{ package Foo; 270Sstevel@tonic-gatesub TIEHASH { bless {} } 280Sstevel@tonic-gatesub FETCH { $_[1] } 290Sstevel@tonic-gate} 306812Srafmy %foo; 310Sstevel@tonic-gatetie %foo, 'Foo'; 320Sstevel@tonic-gateis(!!looks_like_number($foo{'abc'}), '', 'Tied'); 330Sstevel@tonic-gateis(!!looks_like_number($foo{'123'}), 1, 'Tied'); 340Sstevel@tonic-gate 350Sstevel@tonic-gateis(!!looks_like_number("\x{1815}"), '', 'MONGOLIAN DIGIT FIVE'); 360Sstevel@tonic-gate 370Sstevel@tonic-gate# We should copy some of perl core tests like t/base/num.t here 380Sstevel@tonic-gate