• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perl qw(aaa bbb ccc)[$hoge]のような記述)

qw(aaa bbb ccc)[$hoge]の使い方とは?

このQ&Aのポイント
  • Perlの配列演算子を使用した記述で、指定されたインデックスの要素を取得します。
  • 具体的な例として、qw(Sun Mon Tue Wed Thu Fri Sat)[$wday]は、現在の曜日を表す文字列を返します。
  • この記法を使うことで、短いコードで曜日を取得することができます。

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

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

> my @weekname = ( "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"); > $wday = sprintf("%s", $weekname[$wday]); ならわかりますか? 0~6の7要素の配列 @weekname を使うことで、数字から曜日名への変換をしてます。 この配列変数の代入は、qw 演算子を使うと、 > my @weekname = qw(Sun Mon Tue Wed Thu Fri Sat); > $wday = sprintf("%s", $weekname[$wday]); と書けます。 (qw演算子を使えば、文字列配列を簡潔に書けるようになります。結果は同じ) さらに、@weekname という配列変数を作ってますが、一度きりしか使ってないのに変数を作るのは無駄なので、 > $wday = sprintf("%s", $weekname[$wday]); このweename部分に@weeknameの中身である、qw(Sun Mon …) を入れてしまえば、 > $wday = sprintf("%s", qw(Sun Mon Tue Wed Thu Fri Sat)[$wday]); になります。 でも、これって、ちょっと無駄な表現ですね。 「sprintf("%s",○○)」って、元の「○○」と同じ(何もしてない)ので、 > $wday = qw(Sun Mon Tue Wed Thu Fri Sat)[$wday]; で十分。

3104kita
質問者

お礼

print qw(abc def ghi)[2];  #ghiが表示される ↑この用な記述もできるんですね。知りませんでした。 ということですっきり理解できました!ありがとうございます!

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

その他の回答 (1)

  • ann_dv
  • ベストアンサー率43% (528/1223)
回答No.1

qwは配列の定義です。 後に続く[]内の値がそれぞれ0~6の場合にSun Mon Tue Wed Thu Fri Sat を返します。

参考URL:
http://rfs.jp/sb/perl/02/04.html
すると、全ての回答が全文表示されます。

関連するQ&A