なかだです。
At Thu, 11 Dec 2003 20:11:06 +0900 (JST),
ねこ丸 wrote:
> 最近書いていた Perl スクリプトで
>
> print "○○は××されます。よろしいですか? ( yes / no ) ";
> $answer = <STDIN>;
> ...
> ...
>
> みたいなものを使ったのですが、「キーボードからの入力の終了が Ctrl + D
> しないと検出されない」というなんかかっこ悪いものになってしまいました。
Enterで終了しましたが。
$ perl -e 'print "ok? "; $a = <STDIN>; print $a'
ok? y
y
> ですよね。これを while ( line = STDIN.gets ) にしたところ(かっこは気
> 分です)、このスクリプトに引数で与えたファイルを読むのではなく、キーボー
> ドからの入力を待つ動作になりました。
STDINはその名の通り標準入力ですから、スクリプトへの引数とは無関
係です。
> これは「こういうもの」なんでしょうけど、Perl のように <> という目に見
> えるものがないのがちょっと気持ち悪いんです。(gets がそれだと言われれば
> そうなんですけど、gets は誰のメソッドやねんちゅー話です。)<> の代わりに
> なるようなものは何もないのでしょうか?
ARGF.each do |line|
...
end
while line = ARGF.gets
...
end
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦