perl - 如何在Perl中将打印动态切换为STDOUT/STDERR?

标签 perl

我很好奇我是否可以根据某些值或内联表达式(不使用if语句)在打印到STDOUT或STDERR之间切换。

print ($someFlag ? STDOUT : STDERR) "hello world!"

显然,该语法不起作用。

最佳答案

我认为这将满足您的要求:

print {$someFlag ? *STDOUT : *STDERR} "hello world!";

print的文档中可以看到类似的示例。使用typeglobs使其可以在use strict下运行。

另一种策略是定义自己的打印函数,该函数的行为取决于$someFlag的值。

关于perl - 如何在Perl中将打印动态切换为STDOUT/STDERR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1776948/

相关文章:

shell - Perl 捕获子进程的 STDERR 和 STDOUT

datetime - Perl 的 Mojo::XMLRPC 和操作 Mojo::Date 格式

windows - 有没有办法让 Windows shell 脚本执行相对于它的位置而不是它被调用的位置的所有内容?

linux - 磁盘故障检测perl脚本

arrays - Perl 中的数组赋值

perl - Mojo::DOM:某些字符需要特殊转义吗?

linux - 如何以编程方式修改文件日期?

c - 如何使用 Perl 从文件中去除多行 C 注释?

Perl Net::SFTP::Foreign 断开连接不关闭连接

Perl 5 : assignment of an anonymous arrayref, 数组仍然为空 = 复制构造?