http://qs321.pair.com?node_id=11139687


in reply to Is A Number

If you are just looking for an elegant, ready-made solution then Scalar::Util::looks_like_number fits the bill:

use strict; use warnings; use Scalar::Util 'looks_like_number'; use Test::More; my @nums = ( '1.5671', '777', '0', '-4.567', '+9.987' ); my @not = ( '0777 891 777', '121A3D', '+9.8.97', '+9.8¬97', '9.8[97' ); plan tests => @nums + @not; for my $i (@nums) { ok looks_like_number ($i), "$i is a number"; } for my $i (@not) { ok ! looks_like_number ($i), "$i is not a number"; }

🦛