• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:for文の中でのforeachの問題)

for文の中でのforeachの問題

このQ&Aのポイント
  • for文の中でのforeachを使ってテンプレートに数字を挿入する際、数字の部分が一定値(31)のままになってしまう問題が発生しています。どうしてでしょうか?
  • 上記の質問では、テンプレート(##の部分に数字を31から0まで入れる)に対して、foreachを使って数字を挿入していますが、結果として数字の部分が一定値(31)のままになってしまいます。
  • 初めに31で始まり、0まで減少するループを使ってテンプレートに数字を挿入していますが、どうしても数字が変化しない問題が発生しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

foreachは、ループの要素を直接参照しますので、s///で@templateの内容が書き換えられているのでしょう。 一旦別の変数に代入したものを、置換するようにしては。 foreach my $s ( @template ){ $_ = $s; 以下略

tk_1980024
質問者

お礼

お礼が遅れましてすみません。 この方法でばっちりOKでした!! 原理がまだいまいちピンときていないのですが、会社に"Programming Perl"の本があるので、 foreachのところを復習しようと思います。 普通の参考書にはこのような内部処理的な話しはあまり出ていないと思われるのですが、何か参考書としてお勧めのもの をご存知でしたらアドバイス頂ければ幸いです。 また問題にぶち当たった時は宜しくお願いいたします。

すると、全ての回答が全文表示されます。