- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:qw( )空白区切りの仕組み)
qw()空白区切りの仕組みについて
このQ&Aのポイント
- qw()とは、空白区切りの要素を返す関数です。例えば、qw(あ い う え お)は、('あ', 'い', 'う', 'え', 'お')という配列を返します。
- qw()とqw//の違いはありません。どちらを使っても同じ結果が得られます。
- qw()内に変数名を使った場合、変数名が展開されずにそのままの文字列として扱われます。例えば、qw($a $i $u $e $o)は、('$a', '$i', '$u', '$e', '$o')という配列を返します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
(1) qw は、文字列を空白文字で区切ったリストを作ります。 >→この場合、qwとsplitとどちらを使うかは、好みの問題ですか? そうです。動作としては同じだと思います。 qw を使うとタイプする文字が少なくて済みます。^^ あと、注意ですが qw は、 split(/\s+/,'あ い う え お'); の様に機能します。"~"の場合は、変数などが展開されます。 (2) qw() とqw// に違いはありません。 qw には、英数字以外の区切り文字や括弧類(カッコは、開きと閉じがペア)が使えます。 qw|| でも良いのです。 違いといえば、その範囲で、区切り文字に指定したモノが使えるか使えないかということになります。 例えば、qw の中の文字列に/ が使われている時には、 qw/ test /test/ test /; の様には書けないので、 qw| test /test/ test |; の様にします。 (3) 既に(1),(2)で答えた様に同じです。 (4) Perl の動作にあまり詳しいワケではないですが、 たぶん、 use vars '$X'; は、 暗黙に use vars ('$X'); と解釈されると思います。 (関数に引数を渡すときに配列になるのと同じ) なので、同じだと思います。
お礼
>qw() とqw// に違いはありません。 >qw には、英数字以外の区切り文字や括弧類(カッコは、開きと閉じがペア)が使えます。 >qw|| でも良いのです。 あ、なるほど! パターンマッチングでの m// m!! などと同じことだったのですね。 >括弧類(カッコは、開きと閉じがペア)・・・ これが盲点でした。 >qw を使うとタイプする文字が少なくて済みます。^^ これもなるほど(というほどでもないかも知れませんが)、です。 勉強になりました。ありがとうございました。