Test :: File :: Find :: Rule检查我们所有的perl脚本是否都使用严格

Fir*_*ras 1 testing perl cpan

use warnings;
use Test::More;
use File::Find::Rule;
use Test::File::Find::Rule;

my $rule = File::Find::Rule->file->name('*.pl')->not_grep(qr/^\s*use\s+strict;/m, sub { 1 });
match_rule_no_result($rule, ".", 'use strict usage');
done_testing();
Run Code Online (Sandbox Code Playgroud)

输出是:

out put :
ok 1 - use strict usage
1..1
Run Code Online (Sandbox Code Playgroud)

它总是通过测试,即使我的脚本不使用strict,就像这个位于"."内的脚本一样.目录.在http://metacpan.org/pod/Test::File::Find::Rule中可以使用相同的代码作为示例

任何线索?

F.

Sch*_*ern 10

考虑使用Perl :: Critic,它可以更可靠地执行此操作,可配置,并且可以执行更多操作.甚至还有Test :: Perl :: Critic来强制执行它.

Perl :: Critic还有一个优点,就是能够意识到像Moose这样能够打开限制的东西.