1#!/usr/bin/perl -w 2 3BEGIN { 4 unless (-d 'blib') { 5 chdir 't' if -d 't'; 6 @INC = '../lib'; 7 require Config; import Config; 8 keys %Config; # Silence warning 9 if ($Config{extensions} !~ /\bList\/Util\b/) { 10 print "1..0 # Skip: List::Util was not built\n"; 11 exit 0; 12 } 13 } 14} 15 16use strict; 17use Test::More tests => 19; 18use Scalar::Util qw(looks_like_number); 19 20foreach my $num (qw(1 -1 +1 1.0 +1.0 -1.0 -1.0e-12)) { 21 ok(looks_like_number($num), "'$num'"); 22} 23 24is(!!looks_like_number("Inf"), $] >= 5.006001, 'Inf'); 25is(!!looks_like_number("Infinity"), $] >= 5.008, 'Infinity'); 26is(!!looks_like_number("NaN"), $] >= 5.008, 'NaN'); 27is(!!looks_like_number("foo"), '', 'foo'); 28is(!!looks_like_number(undef), '', 'undef'); 29is(!!looks_like_number({}), '', 'HASH Ref'); 30is(!!looks_like_number([]), '', 'ARRAY Ref'); 31 32use Math::BigInt; 33my $bi = Math::BigInt->new('1234567890'); 34is(!!looks_like_number($bi), 1, 'Math::BigInt'); 35is(!!looks_like_number("$bi"), 1, 'Stringified Math::BigInt'); 36 37{ package Foo; 38sub TIEHASH { bless {} } 39sub FETCH { $_[1] } 40} 41my %foo; 42tie %foo, 'Foo'; 43is(!!looks_like_number($foo{'abc'}), '', 'Tied'); 44is(!!looks_like_number($foo{'123'}), 1, 'Tied'); 45 46is(!!looks_like_number("\x{1815}"), '', 'MONGOLIAN DIGIT FIVE'); 47 48# We should copy some of perl core tests like t/base/num.t here 49