需要帮助理解这个perl代码

时间:2016-03-22 04:20:02

标签: regex perl

$pattern = shift(@ARGV)
while(<ARGV>){
    if(/$pattern/){
        print $ARGV,": ",$_;
    }
}

命令:./ myprog.pl大小文件*

File1:

SetSize
ResetSize
SETSIZE
resetSIZE

文件2:

This is a new file
and its Size is very small.

输出:

File1: SetSize
File1: ResetSize
File2: and its Size is very small

有人可以向我解释一下主要代码。我真的不明白有两个文件打印输出,每个while循环运行每个参数一次,如果条件只有1。 arg1(文件1)如何输出两次?

1 个答案:

答案 0 :(得分:3)

while(<ARGV>)有点像Perl魔术:它会从@ARGV中列出的每个文件中提供。相关文档:perlio: I/O Operatorsperlvar: ARGV