#!usr / bin / perl -n的作用是什么?

时间:2014-09-18 15:16:47

标签: perl

#!usr/bin/perl -n的作用是什么?我试图参考书籍和其他来源,但我没有得到更好的主意。它的行为类似于STDIN,例如my @array = <>许多输入都存储在@array中。 -n也表现得如此,但如何将输入值存储在数据类型中。哪个是原始功能?

2 个答案:

答案 0 :(得分:2)

它实际上为您提供了包装内部命令行的内容:

while (<>) {  ... What you have on cmd line here ... }

所以:

perl -e 'while (<>) { if (/^(\w+):/) { print "$1\n"; } }'

和此:

perl -n -e 'if (/^(\w+):/) { print "$1\n" }'

是等价的。

答案 1 :(得分:1)

使用-n选项,脚本中的代码将被解释为您写了这个:

while (<>) {
   <code>
}

例如,以文件作为参数调用的以下脚本将替换文件的所有行尾并在标准输出上发送结果:

#!usr/bin/perl -n
~s/\n//;
print ; 

必须像这样调用:

perl script.pl <file>