my @args = ("arg1", "arg2", "arg3"); exec "myProcess.exe", @args; # array will be smashed into a list my %args = ( --arg1 => 'val1', --arg2 => 'val2', --arg3 => 'val3', ); exec "myProcess.exe", %args; # hash will be smashed into a list my @args = qw(arg1 arg2 arg3); # a bit of syntax sugar exec "myProcess.exe", map { "--$_ 'foo'" } @args; # map returns a list