微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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);

原文地址:https://www.jb51.cc/Perl/172374.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐