#!/usr/bin/perl use strict; use warnings; my @numbers = (1, -1, 123.1, 0.1); foreach my $number (@numbers) { if ($number =~ /\D/ ) { print "The $number has nondigits\n"; } elsif ($number =~ /^\d+\z/ ) { print "The $number is a whole number\n"; } elsif ($number =~ /^-?\d+\z/ ) { print "The $number is an integer\n"; } elsif ($number =~ /^[+-]?\d+\z/ ) { print "The $number is a +/- integer\n"; } elsif ($number =~ /^-?(?:\d+\.?|\.\d)\d*\z/ ) { print "The $number is a real number\n"; } elsif ($number =~ /^[+-]?(?=\.?\d)\d*\.?\d*(?:e[+-]?\d+)?\z/i ) { print "The $number is a C float\n"; } }