perl 配列のリファレンス

#配列のリファレンス

@array = (1 .. 5);

#サブルーチン実行前
print "実行前:",join(", ", @array), "\n";

#リファレンスを渡してサブルーチン実行
&sub_reference_array(\@array);

#サブルーチン実行後
print "実行後:",join(", ", @array), "\n";

#サブルーチン
sub sub_reference_array{
    #リファレンスを受け取る
    my($reference_array) = @_;

    #リファレンスの配列の内容を変更
    for($i = 0; $i < @$reference_array; $i++){
        $$reference_array[$i]++;
    }
}

#実行結果
# 実行前:1, 2, 3, 4, 5
# 実行後:2, 3, 4, 5, 6

#@arrayのリファレンスである\@arrayを渡してサブルうーちんを実行する。サ
#ブルーチン内では引数を介して渡されたリファレンスをローカル変数
#$referece_arrayに代入している。その後のforステートメントの条件式の中
#に@$referece_arrayを記述しリファレンスが指す内容を表している。forルー
#プは0から始まり、配列の各要素に対してインクリメントを行っているため元
#の配列はループ終了後に(2, 3, 4, 5, 6)になる。

初めてのPerl 第6版

初めてのPerl 第6版