我的File :: Find :: Rule-> grep调用有什么问题?

时间:2013-04-08 09:26:39

标签: perl grep

我正在尝试获取其中使用了“MyClass”类的.cpp文件列表。

以下是摘录:

use File::Find::Rule;
my @match_files = File::Find::Rule->file()->name('*.cpp')->in('.')->grep("MyClass");

但是,这会产生以下错误:

Can't call method "grep" without a package or object reference at ./script.pl line 20.

有人可以帮我理解这次电话有什么问题吗?

1 个答案:

答案 0 :(得分:3)

错误告诉您最后一个->运算符的LHS 一个对象。这是因为in方法评估规则并返回匹配文件列表。

所以你应该交换grepin

my @files = File::Find::Rule->file->name('*.cpp')->grep(qr/MyClass/)->in('.');

您可以在MetaCPAN重新阅读文档。