X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgetopts.pl;h=852aae89b18d868694a7c07402ef3a20287d8398;hb=6b8afdafd43a19a5a652c59255c9895c9bcbe27b;hp=4ed3a053f9c945d98dc5d98b3407405ff74c809e;hpb=ac58e20f744208e9bff2115708a2f1c4e2e2175f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/getopts.pl b/lib/getopts.pl index 4ed3a05..852aae8 100644 --- a/lib/getopts.pl +++ b/lib/getopts.pl @@ -6,23 +6,24 @@ sub Getopts { local($argumentative) = @_; - local(@args,$_,$first,$rest,$errs); - local($[) = 0; + local(@args,$_,$first,$rest); + local($errs) = 0; @args = split( / */, $argumentative ); - while(($_ = $ARGV[0]) =~ /^-(.)(.*)/) { + while(@ARGV && ($_ = $ARGV[0]) =~ /^-(.)(.*)/) { ($first,$rest) = ($1,$2); $pos = index($argumentative,$first); - if($pos >= $[) { - if($args[$pos+1] eq ':') { + if($pos >= 0) { + if($pos < $#args && $args[$pos+1] eq ':') { shift(@ARGV); if($rest eq '') { + ++$errs unless @ARGV; $rest = shift(@ARGV); } - eval "\$opt_$first = \$rest;"; + ${"opt_$first"} = $rest; } else { - eval "\$opt_$first = 1"; + ${"opt_$first"} = 1; if($rest eq '') { shift(@ARGV); }