我见过这两种变体:
say STDERR 'hello world';
say {*STDERR} 'hello world';有什么不同吗?安全考虑最佳做法.?
发布于 2016-03-11 09:50:32
我要说的是,第一个变体是表达它的惯用方式,我想我从未见过用于简单文件句柄的第二个变体。
第二个变体是一个更一般的构造的简单例子,您可以在其中动态地决定文件句柄。例如,编写如下代码可能是有用的:
say { $errors_on_stderr ? *STDERR : *STDOUT } "hello world";变量用于决定应该使用哪个文件句柄的位置。您可以在花括号内使用任何perl表达式。另一个例子是,如果将文件句柄存储在散列中。那么就有必要写
my $data = { fh => *STDOUT };
say { $data->{fh} } "Hello world";但在你的简单情况下,我会为第一个变体。
https://stackoverflow.com/questions/35936561
复制相似问题