print reverse <>;
print sort <>;
perl处理这些操作的具体步骤是什么?
对于1st
来说,perl不仅可以反转调用参数的顺序,还可以反转每个文件的内容......
答案 0 :(得分:2)
print reverse <>;
<>
在数组上下文中进行评估,这意味着它会“玷污”文件。它读取整个文件。对于由@ARGV中指定的文件表示的魔术文件,它将按命令行参数(@ARGV)引用的顺序读取所有文件的内容。
reverse
然后反转数组的顺序,这意味着最后一个文件的最后一行是第一个,最后一个文件的第一行是最后一行。
print
然后打印数组。
从你的笔记中,你可能想要这样的东西:
perl -e 'sub BEGIN { @ARGV=reverse @ARGV; } print <>;' /etc/motd /etc/passwd
答案 1 :(得分:1)
docs for I/O operators中对此进行了描述。以下是文档的摘录:
null文件句柄&lt;&gt;很特别:它可以用来模拟sed和awk的行为。来自&lt;&gt;的输入来自标准输入,或来自命令行中列出的每个文件。以下是它的工作原理:第一次&lt;&gt;如果进行评估,则检查@ARGV数组,如果为空,则将$ ARGV [0]设置为“ - ”,打开时会为您提供标准输入。然后将@ARGV数组作为文件名列表处理。
值得阅读整个文档,因为它在各种用例中提供了等同于<>
的等效“非魔法”Perl代码。