$ perl -MData::Dumper -MGetopt::Long -e' my %options = ( input => [] ); GetOptions(\%options, "input=s{0,}", "des=s", "r=i") or die; print(Dumper(\%options)); ' -- -input data modem apps -des "finding files" -r 1000 $VAR1 = { 'r' => 1000, 'input' => [ 'data', 'modem', 'apps' ], 'des' => 'finding files' };