ソースファイルをフィルタリングするためのコールバック機能をファイルに使用しようとしています。それは今のところうまく行かず、太陽の下のすべてをつかむだけです。ファイルを使用してソースファイルを取得するには
あなたは良い方向に私を指摘できますか?
#!/usr/local/bin/perl
use strict;
use warnings;
use File::Find;
my @srcFiles;
my @srcExt = qw(cpp h py pl);
my @startDir = qw(.);
find(sub{
my @fields = split /'.'/, $File::Find::name;
push @srcFiles, $File::Find::name if grep $fields[-1], @srcExt;
},
@startDir);
print 'Source files found: ', @srcFiles;
あなたの問題はあなたがとてもドットを使用してファイルを分割したいあなたのスプリットで
my @ar = split /'.'/, $File::Find::name;
^
here is your problem.
あるおかげ
それは動作しますが、感謝を。私のバージョンのエラーは何ですか?基本的に私がやろうとしたのは、ファイル名を '。'に分割し、最後のフィールド(拡張子)を取得し、その拡張子にマッチさせることです。 私はあなたのアプローチを理解していますが、私も訂正したいと思います。 – zebullon
@zebullon投稿の編集: – mkHun
@zebullon 'grep'も間違っています - ' $ fields [-1] 'が真の値で' @ srcExt'が空でない限り 'if'条件は真です。 – hobbs