in reply to combined into a single regex

What about using Scalar::Util.
use Scalar::Util qw/looks_like_number/; my @data = ( -123.004, -.008, 0, -0, .0987, 1.0, 12345, 'd', 'test' ); foreach my $value (@data) { print( looks_like_number($value) ? "true\n" : "false\n" ); } __OUTPUT__ true true true true true true true false false
Boris