use strict; use warnings; use Getopt::Long qw(GetOptionsFromArray); my @arglist = (); for my $arg (@ARGV) { if ($arg =~ /^-/) { push(@arglist, $arg); } else { if ($arglist[$#arglist] =~ /^-/) { push(@arglist, $arg); } else { $arglist[$#arglist] .= ' '.$arg; } } } my ($opta, $optb, $optc); GetOptionsFromArray(\@arglist, 'a=s' => \$opta, 'b=s' => \$optb, 'c=s' => \$optc); for ($opta, $optb, $optc) { print $_,"\n"; }