1

私はこの Perldoc のビットに混乱しています:

FILEHANDLE が省略された場合、最後に選択された (select を参照) 出力ハンドルに出力されます。 http://perldoc.perl.org/functions/print.html

printファイルハンドルに書き込んだ後、ネイキッドステートメントはそのファイルハンドルに出力されると言っているようです。これをテストするスクリプトを書きました...

#!/usr/bin/perl

open (FILE, '>', 'PrintTest.txt') or die $!;
print FILE "Hello world!\n";
print "Hello.... hello? hello world!\n"; 
close FILE;

しかし、テストはそうではないことを示しています。

$ perl PrintTest.pl
Hello.... hello? hello world!

ここでは FILE ではなく STDOUT に書き込んでいます。これはおそらく最も賢明な結果ですが、上で引用した Perldoc の行とは反対のようです。おそらく、「最後に選択された出力ハンドル」の意味を誤解していますか? これを説明するために私が考えることができる唯一の方法です:-p

よろしくお願いします〜ktm

4

2 に答える 2

4

ファイルハンドルに書き込んだ後、裸の print ステートメントはそのファイルハンドルに出力されると言っているようです。

いいえ、印刷した最後のハンドルではなく、最後に選択したハンドルに印刷すると表示されます。このページを読んでその方法を確認するように指示されます。

open (FILE, '>', 'PrintTest.txt') or die $!;
print FILE "Hello world!\n";
select(FILE);                              <----- Missing
print "Hello.... hello? hello world!\n"; 
close FILE;
于 2013-04-03T06:30:34.923 に答える