配列の中身をmapで置換しようとしてはまったからメモ

@list = qw/text1 text2 text3/;
@new_list = map { $_=~ s/text/word/ } @list;

見たいな感じでやると、

$VAR1 = '1';
$VAR2 = '1';
$VAR3 = '1';

ってなる。

えぇぇぇぇって思っていろいろ調べてたら、置換処理したときは処理した回数を返すそうです。(全然知らなかった)

なんで、

@list = qw/text1 text2 text3/;
@new_list = map { $_=~ s/text/word/; $_ } @list;

ってやってあげたら、

$VAR1 = 'word1';
$VAR2 = 'word2';
$VAR3 = 'word3';

って無事なりました。

ふぅー
普段プログラミングしないからちょっとのことではまる。