Well I am no Perl guru, but it would seem to be the same answer for most scripting languages (happy to be corrected of course).
Think of how the following:
system ("./program2.pl \@array1 \@array2");
would look if you were the cli??
Let us say the arrays look like:
@array1 = one. two, three
@array2 = 1, 2, 3
So we have 2 arrays with 3 elements each. Assuming that '\@arrayX' correctly gets all the arguments from each array, the cli would look like:
./program2.pl one two three 1 2 3
So now there are 6 cli parameters which are to be processed by the second script.
Option would be to enclose each set in quotes so that there are only 2 parameters. This will still require some manipulation to put them back into an array.
Hope that helps.