use strict; use Getopt::Long; my $fst_a_opt_value; my $fst_b_opt_value; print "ARGV before = @ARGV\n"; Getopt::Long::Configure("pass_through","require_order"); GetOptions( 'a=i' => \$fst_a_opt_value, 'b' => \$fst_b_opt_value, ); print "first a = $fst_a_opt_value \n"; print "first b = $fst_b_opt_value \n"; print "ARGV after = @ARGV\n"; # #prints # ARGV before = -a 1 -b b.pl -a 2 -b 2 -c 1 # first a = 1 # first b = 1 # ARGV after = b.pl -a 2 -b 2 -c 1