##
sub isNVint {
my( $i )= @_;
return isIntVal($i) && $i == int($i);
}
####
sub isInt {
my( $i )= @_;
return $i =~ /^-?\d+\z/;
}
####
sub isIntVal {
my( $i )= @_;
return $i =~ /^\s*[-+]?\d+\s*$/;
}
####
sub isIntVal2 {
my( $i )= @_;
my $warn= 0;
{
local( $^W )= 1;
# my $warn= 0;
local( $SIG{__WARN__} )= sub { $warn++ };
$i= 0+$i;
}
return ! $warn && int($i) == $i;
}