my @numbers = ("1", "-1", "123.1", "0.1"); foreach my $number (@numbers) { my $integer = is_integer($number); print "$number is Integer\n" if ($integer); my $float = is_float($number); print "$number is Float\n" if ($float); } sub is_integer { $_[0] =~ /^[+-]?\d+$/ } sub is_float { $_[0] =~ /^[+-]?\d+\.?\d*$/ } __END__ Output: 1 is Integer 1 is Float -1 is Integer -1 is Float 123.1 is Float 0.1 is Float