我很好奇我是否可以根据某些值或内联表达式(不使用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/