in reply to A C-like brain in a Perl-like world

Others have pointed out that this specific problem can be solved in other ways. However, for general learning:

1) use strict (or die!). This would tell you right off that $array2 is not defined, so it's not what you think.

2) my (@array1,@array2) = @_; looks like a mistake, even though on further reading I think you know what it really does. Use that idiom for a parameter list, not for cute tricks with the semantics.

3) for($i=0;$i<$array1_size;$i++) if you want to do this from C, think of a foreach construct instead.

4) look up the difference between @an and $an.

That's all the time I have... I'm off to Cozumel for a long weekend. Keep plugging away!

—John