- ベストアンサー
perl の挙動について
$today = "2012"; my @file = qw( result_001_${today}.txt result_002_${today}.txt result_003_${today}.txt ); for(@file){ print ; } 例えば、こういったスクリプトがある場合、$todayが代入されることなく出力されます。 なぜか分かりますでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
qw は実質的に q + split だから.
その他の回答 (1)
- 春原 なの(@ymda)
- ベストアンサー率37% (668/1777)
回答No.1
代替コードとして $today = "2012"; my @file = qq{ result_001_${today}.txt result_002_${today}.txt result_003_${today}.txt }; for(@file){ print ; } ですと動きます。 おそらく q で挟んだものは シングルクォート、qqで挟んだものはダブルクォートで挟んだものと同じですが qwの場合は、単なる文字列として認識されるのではないかと考えられます。
質問者
お礼
回答いただきありがとうございます。 qwの意味を全く考えずに使っていましたが、意味があったのですね。 また、サンプルプログラムありがとうございます。 とても役に立ちました。
お礼
とても参考になるHPの紹介ありがとうございます。 qwは単純に分割するだけと思っていたのですが、色々な使い方があることを初めて知りました!