From fafab3ed4e7aff2275500662a3885a6b4d11f501 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Tue, 4 Aug 2015 17:10:44 +0100 Subject: [PATCH 1/1] lib/Odin.pm: New function for parsing and checking integer arguments. --- lib/Odin.pm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/Odin.pm b/lib/Odin.pm index 7182af2..a89ba88 100644 --- a/lib/Odin.pm +++ b/lib/Odin.pm @@ -723,6 +723,19 @@ sub arg { return $a; } +sub intarg { + my ($me, $what, $min, $max) = @_; + $what //= "option `-$me->{opt}'"; + defined (my $a = $me->arg) or return undef; + if ($a !~ /^[-+]?\d+$/ || + (defined $min && $a < $min) || + (defined $max && $a > $max)) { + $me->err("invalid value `$a' for $what"); + $a = undef; + } + return $a; +} + sub rest { return @{$_[0]->{args}}; } sub ok { return $_[0]->{ok}; } sub bad { $_[0]->{ok} = 0; } -- 2.11.0