0

クラス「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.

この呼び出しの何が問題なのかを理解してくれる人はいますか?

4

1 に答える 1

3

->このエラーは、最後の演算子の LHS がオブジェクトではなかったことを示しています。これは、inメソッドがルールを評価し、一致するファイルのリストを返すためです。

したがって、おそらく と を交換する必要がgrepありinます。

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

ドキュメントはMetaCPANで再読できます。

于 2013-04-08T10:09:03.877 に答える