配列に対してforやforeachでループ処理をする際に、制御変数の中身を変更すると、元の配列の中身も変更されてしまいます。
知らないと思わぬ損をするので、気をつけましょう。
私は今まで知りませんでした。(><)
use strict;
use warnings;
my @array = ("x", "y");
for (@array){
$_ = "z";
}
print "@array";
出力結果:z z
なお、以下のような書き方でも同じ結果になります。
for my $a (@array){
$a = "z";
}
コメントする