我正在尝试获取其中使用了“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.
有人可以帮我理解这次电话有什么问题吗?
答案 0 :(得分:3)
错误告诉您最后一个->
运算符的LHS 不一个对象。这是因为in
方法评估规则并返回匹配文件列表。
所以你应该交换grep
和in
:
my @files = File::Find::Rule->file->name('*.cpp')->grep(qr/MyClass/)->in('.');
您可以在MetaCPAN重新阅读文档。