Using regular expressions, it is useful to use:
sub is_int {
$str = $_[0];
$str =~ s/^\s+|\s+$//g;
if ($str =~ /^(\-|\+)?\d+?$/) {
print "yes " . $_[0] . "\n";
}
else{
print "no " . $_[0] . "\n";
}
}
is_int(-12345678901234);
is_int(-1);
is_int(23.);
is_int(-23.);
is_int(0);
is_int(+1);
is_int(12345678901234);
is_int("\t23");
is_int("23\t");
is_int("08");
is_int("-12345678901234");
is_int("-1");
is_int("0");
is_int("+1");
is_int("123456789012345");
is_int("-");
is_int("+");
is_int("yadz");
is_int("");
is_int(undef);
is_int("- 5");
is_int("+ -5");
is_int("23.1234");
is_int("23.");
is_int("--1");
is_int("++1");
is_int(" 23.5 ");
is_int(".5");
is_int(",5");
is_int("%5");
is_int("5%"); #no
Alternatively, you can use POSIX.
use POSIX;
if (isdigit($var)) {
}
source
share