use strict; my ($name, $last, $arg); while ($_ = shift ) { last unless /^-\w/; print "arg $_\n"; if ( /-n/ ) { $name = shift; } if ( /-l/ ) { $last = shift; } next if /-n|-l/; die "bad arg: $_"; } print "name $name, last $last\n";