引用自Perl::Critic::Policy::InputOutput::ProhibitExplicitStdin
Perl 有一个名为 *ARGV 的有用的魔术文件句柄,它检查命令行,如果有任何参数,则打开并将它们作为文件读取。如果没有参数,*ARGV 的行为类似于 *STDIN。如果您想创建一个从 STDIN 读取的程序,这种行为几乎总是您想要的。这通常以以下两种等效形式之一编写:
while (<ARGV>) { # ... do something with each input line ... } # or, equivalently: while (<>) { # ... do something with each input line ... }
- 它是“只是一个约定”还是有一些不使用的充分理由
<STDIN>
?
我觉得<STDIN>
我的代码意图比使用<>
or更清晰<ARGV>
。
我的代码流程是这样的
my @inp = <STDIN>;
my $len = $inp[0];
...
for(my $i = 0; $i < ($len + 0); $i++) {
my @temp = split (' ', $inp[$i]);
...
}