1

我对 Perldoc 的这一点感到困惑:

如果省略 FILEHANDLE,则打印到最后选择的(参见选择)输出句柄。 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!

我们在这里写的是 STDOUT,而不是 FILE,这可能是最明智的结果,但似乎与上面引用的 Perldoc 行相反。也许我误解了“最后选择的输出句柄”是什么意思?这是我能想到的解释这一点的唯一方法:-p

提前致谢~ktm

4

2 回答 2

4

似乎是在写入文件句柄后,裸打印语句将打印到该文件句柄。

不,它说它将打印到最后一个选定的句柄,而不是您打印的最后一个句柄。它继续指导您阅读此页面以了解如何操作。

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 回答
1

我相信需要一个 SELECT 语句才能将默认句柄从 stdout 更改为另一个。然后,选定的句柄将一直使用,直到更改。

于 2013-04-03T06:33:13.237 回答