Perlで文字を入力するには

$t = <STDIN>

と書きますが↓の命令でも文字が書けるみたいです

$t=<>

この二つの入力の命令の違いは何なのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (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の一行が表示される
です。
    • good
    • 0

行入力演算子(<>)でファイルハンドルを省略した場合


@ARGVの各要素をファイル名としてopenし、順に読み込みます。
@ARGVが空の場合はデフォルトとしてSTDINが用いられます。
なので、@ARGVが空の場合は同じ動作をします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング