#!perl use strict; use warnings; while () { chomp; # get rid of pesky newlines if(is_integer_string($_)){ print "$_ is a valid integer string\n"; } else { print "$_ isn't a valid integer string\n"; } } sub is_integer_string { # a valid integer is any amount of white space, followed # by an optional sign, followed by at least one digit, # followed by any amount of white space return $_[0] =~ /^\s*[\+\-]?\d+\s*$/; } __DATA__ 1 1234 +1234 -1234 A 1234+ + 1234 #### return $_[0] =~ /^\s*[\+\-]?\d+\s*$/; #### if(( $_[0] =~ /^\s*[\+\-]?\d+\s*$/) and ($_[0] > 0)) { return 1; } else{ return undef; }