【发布时间】:2021-06-29 22:48:59
【问题描述】:
我正在尝试使 perl 单行模仿 awk 的文件相对行号计数器“FNR”。这本身不是问题。在一次尝试中,我使用了以下命令:
perl -lnE 'say "$. : $_"; $.=0 if eof' testfiles
这有效:(自动递增的)跨文件行计数器$. 在到达每个测试文件的最后一行时被重置。当我在eof 函数调用中添加括号时,如下所示:
perl -lnE 'say "$. : $_"; $.=0 if eof()' testfiles
程序不再按预期工作,因为eof() 仅在处理最后一个测试文件的最后一行时返回 true。这是正确记录的here。
我的问题是:如何eof 知道它是否在有或没有() 的情况下被调用,因此该怎么办?该函数是否有某种特殊情况,或者任何函数都可以找出是否带括号或不带括号调用它?
【问题讨论】:
标签: perl