in reply to Exec function arguments

This is more a question of Perl's syntax than a question about exec in particular. You can use any standard Perl method to construct a list, and pass that list to exec. What you have is a very reasonable method of doing that. borisz provided another example, and here are a few more:

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

As you can see, there are many ways to make lists in Perl. Which one you pick depends on the situation, but, like I said, the example you've shown is very reasonable.