Чтобы проверить use strict
, просто сделайте это:
my $rule = File::Find::Rule
->file->name('*.pl')
->not_grep( qr/^\s*use\s+strict;/ )
;
Обновление
Я согласен с Шверном и jrockway: есть лучший модуль для обеспечения соблюдения use strict
.
Тем не менее, вот что я смог выяснить в отношении деталей вашего вопроса.
Пример use strict
, предоставленный Test :: File :: Find :: Rule , неверен.
Насколько я понимаю, метод grep
в File :: Find :: Rule будет оценивать каждую строку файла, используя каждый предоставленный спецификатор, останавливаясь (т.е. сохраняя файл в своем результате установить) по первой верной оценке. File::Find::Rule
дает пример того, как каждый файл начинается строкой Шебанга. Если первая строка не соответствует регулярному выражению, следующий спецификатор (анонимная подпрограмма) всегда будет возвращать true, и будет найден несоответствующий файл.
$rule->grep( qr/^#!.*\bperl/, [ sub { 1 } ] );
Однако для теста use strict
вы не хотите ограничивать себя первой строкой. Кроме того, метод not_grep
делает ненужными дополнительные спецификаторы: мы сохраняем файл, если ни одна из строк в файле не соответствует регулярному выражению. Надеюсь, это поможет.