perl – 有没有办法将子程序的打印输出捕获到变量,所以我可以将它发送到stderr?

前端之家收集整理的这篇文章主要介绍了perl – 有没有办法将子程序的打印输出捕获到变量,所以我可以将它发送到stderr?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我们有:
sub test {
        print "testing\n";
}

如果有一种情况我想让它打印到stderr而不是stdout,有没有办法我可以调用子程序来做这个?或者我可以将输出捕获到变量然后使用警告?我对perl很新.

解决方法

就在这里. print将其输出发送到“selected”文件句柄,通常是STDOUT.但是Perl提供了 select功能供您更改.
select(STDERR);
&test;           # send output to STDERR
select(STDOUT);  # restore default output handle

select函数返回先前选择的文件句柄,因此您可以捕获它并在以后恢复它.

my $orig_select = select(STDERR);
&test;
select($orig_select);

猜你在找的Perl相关文章