Perlで引数に複数の配列を指定するには
Perlのサブルーチンは、引数を配列 @_ で受け取ります。
したがって、スカラー変数や一つの配列なら問題がないのですが、複数の配列を引数に指定すると、
受け取り側が一つの配列 @_ なので、複数の配列が一つにまとめられて、想定外の結果になってしまいます。
そのような場合は、配列のリファレンスを引数に指定します。
サンプル
use strict; my (@aaa, @bbb); @aaa = (111, 222, 333); @bbb = (999, 888, 777); &ccc(\@aaa, \@bbb); print @aaa, "\n"; print @bbb, "\n"; sub ccc{ my ($refaaa, $refbbb) = @_; $$refaaa[1] = "000"; $$refbbb[2] = "000"; }