Perl には、配列に何らかの情報を入力するサブルーチンがよくあります。私は C++ でのハッキングにも慣れているので、参照を使用して Perl で次のようにすることがよくあります。
my @array;
getInfo(\@array);
sub getInfo {
my ($arrayRef) = @_;
push @$arrayRef, "obama";
# ...
}
より簡単なバージョンの代わりに:
my @array = getInfo();
sub getInfo {
my @array;
push @array, "obama";
# ...
return @array;
}
もちろん、その理由は、配列がサブルーチンでローカルに作成され、戻り時にコピーされることを望まないからです。
そうですか?それとも、とにかく Perl はそれを最適化しますか?