同时将内容打印到标准输出和文件的方法

7
我有一个带有多个print语句的Perl脚本。是否有一种方式可以将所有这些print语句同时重定向到文件和stdout,而不需要复制print语句?
1个回答

8
您可以使用File::Tee来完成此操作。
use File::Tee qw(tee);

tee STDOUT, '>>', 'some_file.out';

print "w00p w00p";

如果 File::Tee 不可用,可以通过管道轻松模拟:

open my $tee, "|-", "tee some_file.out";
print $tee "w00p w00p";
close $tee;

1
警告:这两种方案都不适用于Windows操作系统。 - Not a machine
如果文件不存在,第二种方法会失败。 - Melandru's Square

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接