print ($someFlag ? STDOUT : STDERR) "hello world!"
显然,该语法不起作用.
print {$someFlag ? *STDOUT : *STDERR} "hello world!";
在print的文档中可以看到一个类似的例子.使用typeglobs使其运行严格.
另一个策略是根据$someFlag的值来定义您自己的打印功能,其功能将不同.