« 「すぐ分かるPerl」6.2 フィルターを使う | トップページ | 「すぐ分かるPerl」6.4 謎の物体「$_」 »

2008年4月24日 (木)

「すぐ分かる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」6.2 フィルターを使う | トップページ | 「すぐ分かるPerl」6.4 謎の物体「$_」 »

Perl」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/214806/40977351

この記事へのトラックバック一覧です: 「すぐ分かるPerl」6.3 標準入力を読み込む:

« 「すぐ分かるPerl」6.2 フィルターを使う | トップページ | 「すぐ分かるPerl」6.4 謎の物体「$_」 »