Вы знаете, что вам не нужно использовать косую черту для оператора регулярных выражений.Правильно?
foreach my $line (@list) {
print "$line" if ($line =~ m(->\s+com/puppycrawl/tools/checkstyle));
}
Вы можете использовать любой символ, который хотите после m
:
foreach my $line (@list) {
print "$line" if ($line =~ m#->\s+"com/puppycrawl/tools/checkstyle#);
}
или
foreach my $line (@list) {
print "$line" unless ($line =~ m@->\s+com/puppycrawl/tools/checkstyle@);
}
и т. Д.
Это значительно облегчает работу с регулярными выражениями, которые содержат косую черту.
Кстати, вы можете читать весь файл сразу в массив:
open (MY_FILE, "file.txt") or die qq(A slow and painful death\n);
my @list = <MY_FILE>;
close (MY_FILE); #No longer needed. It's in @list.
Кроме того, я ненавижуFile::Find
потому что это нарушает все правила при написании модуля.Я написал свою собственную, которая не требует, чтобы вы помещали всю программу в нужную подпрограмму или использовали глобальные переменные: http://db.tt/SSAw1x3.