首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印到STDERR或{*STDERR}?

打印到STDERR或{*STDERR}?
EN

Stack Overflow用户
提问于 2016-03-11 09:34:21
回答 1查看 225关注 0票数 1

我见过这两种变体:

代码语言:javascript
复制
say STDERR    'hello world';

say {*STDERR} 'hello world';

有什么不同吗?安全考虑最佳做法.?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 09:50:32

我要说的是,第一个变体是表达它的惯用方式,我想我从未见过用于简单文件句柄的第二个变体。

第二个变体是一个更一般的构造的简单例子,您可以在其中动态地决定文件句柄。例如,编写如下代码可能是有用的:

代码语言:javascript
复制
say { $errors_on_stderr ? *STDERR : *STDOUT } "hello world";

变量用于决定应该使用哪个文件句柄的位置。您可以在花括号内使用任何perl表达式。另一个例子是,如果将文件句柄存储在散列中。那么就有必要写

代码语言:javascript
复制
my $data = { fh => *STDOUT };
say { $data->{fh} } "Hello world";

但在你的简单情况下,我会为第一个变体。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35936561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档