- ベストアンサー
入力に関する質問
Perlで文字を入力するには $t = <STDIN> と書きますが↓の命令でも文字が書けるみたいです $t=<> この二つの入力の命令の違いは何なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんちは。うちの環境で試してみたところ @ARGVが空の場合、 $t = <STDIN> も $t = <> も 「キーボード(標準入力)から一行読み込む」 でした @ARGVが空ではない場合 $t = <STDIN>はやっぱりキーボード(標準入力)から一行読み込む、のに対し $t = <> は $ARGV[0]の内容の名前のファイルから一行読み込むみたいです 違いのわかる実験としては... abc.txtというテキストファイルを一つ用意しておいて perl -e "$t = <STDIN>;print $t" abc.txt perl -e "$t = <>; print $t" abc.txt この二つをくらべてみてはどうでしょうか ちなみに 上はキーボードから入力した文字列を表示する 下はabc.txtの一行が表示される です。
その他の回答 (1)
- steel_gray
- ベストアンサー率66% (1052/1578)
回答No.1
行入力演算子(<>)でファイルハンドルを省略した場合 @ARGVの各要素をファイル名としてopenし、順に読み込みます。 @ARGVが空の場合はデフォルトとしてSTDINが用いられます。 なので、@ARGVが空の場合は同じ動作をします。