「すぐ分かるPerl」6.3 標準入力を読み込む
■<STDIN>は入力した行という値になる
<STDIN>とはstanard inputつまり標準入力の略。
一回呼び出すごとに標準入力から1行のデータを読み出してその値になる。
※スカラーコンテキストとして呼ばれた場合
#1st3 -- <STDIN>
$a = <STDIN>;
$b = <STDIN>;
$c = <STDIN>;print $a;
print $b;
print $c;
実行結果
perl perltest.pl < greetings.txt
Good Morning
Hello
Good bye
■<STDIN>を呼び出し続けるとどうなるか
#1st10 -- <STDIN>
$a = <STDIN>;
$b = <STDIN>;
$c = <STDIN>;
$d = <STDIN>;
$e = <STDIN>;
$f = <STDIN>;
$g = <STDIN>;
$h = <STDIN>;
$i = <STDIN>;
$j = <STDIN>;print $a;
print $b;
print $c;
print $d;
print $e;
print $f;
print $g;
print $h;
print $i;
print $j;
結果は
perl perltest.pl < greetings.txt
Good Morning
Hello
Good bye
Thank you
Good Night
つまり、本のファイル「greetings.txt」のすべての行を出し切って何もしない。
6.1で出たものを再確認。
while(<STDIN>){
print;
}
このperlにテキストファイルを食わせると、<STDIN>が1行ずつ取り込み、printで処理していく。
処理する行がなくなると、<STDIN>がundefの値となり、whileループを抜ける。
次回も続く。
| 固定リンク
「Perl」カテゴリの記事
- 「すぐわかるPerl」 8.10 ディレクトリのリカーシブ処理(その2)(2009.02.24)
- 「すぐわかるPerl」 8.10 ディレクトリのリカーシブ処理(その1)(2009.02.23)
- 「すぐわかるPerl」 7.6 マッチした文字列と、その前後の文字列を扱う変数(2008.06.17)
- 「すぐわかるPerl」 8.9 コマンドの入出力に入出力を切り替える(2008.11.12)
- 「すぐわかるPerl」 8.8 標準入出力以外のファイルの制御(2008.10.08)









コメント