if ( is_integer($value) && is_between_inclusive($value,0,100) ){ ... } sub is_integer{ my $value = shift; return $value =~/^[-]?\d+$/; } sub is_between_inclusive{ my ($value,$min,$max) = @_; return(($value >= $min) && ($value <= $max)); }