• ベストアンサー

入力に関する質問

Perlで文字を入力するには $t = <STDIN> と書きますが↓の命令でも文字が書けるみたいです $t=<> この二つの入力の命令の違いは何なのでしょうか?

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

  • ベストアンサー
  • moon_piyo
  • ベストアンサー率60% (88/146)
回答No.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が空の場合は同じ動作をします。

関連するQ&A

専門家に質問してみよう