Я не знаю, как убедить Getopt::Long
сделать именно то, что вы просите, но я часто использую кавычки оболочки, чтобы сгруппировать несколько элементов в одну строку, а затем разбить строку на массив:
use strict;
use warnings;
use Data::Dumper;
use Getopt::Long;
my @files;
my $filelist;
GetOptions('file=s' => \$filelist);
if ($filelist) {
$filelist =~ s/^\s+//; # Remove any leading whitespace
@files = split /\s+/, $filelist;
}
print Dumper(\@files);
__END__
perl multipls.pl --file "filename=a.txt filename=b.txt"
$VAR1 = [
'filename=a.txt',
'filename=b.txt'
];