サブルーチンのプロトタイプ
Perlではサブルーチンのプロトタイプを書くことができるが、これがけっこうアレ。
sub routine( \@ ) { my $ref_array = shift; my @array = @$ref_array; print "array(in) = :".join( ';', @array).":\n"; $ref_array->[0] = 9; }
とプロトタイプで、配列のリファレンスをとるように宣言しておくと、
my @array = (1,2,3,4); routine @array; print "array(out) = :".join( ';', @array).":\n";#-->9234
のように、配列をリファレンスにせず、直接渡してしまうように記述しても、サブルーチンには
リファレンスが渡される。
これ、使っちゃうと、保守が大変そうだなぁ。