Used module Readonly at line 9, column 3. Readonly.pm is buggy and slow. Use Const::Fast or ReadonlyX instead, or the core pragma constant. (Severity: 2) #### Benchmark: timing 10000000 iterations of const, literal, normal, ro, ro_simple, rotie, tglob... const: 0 wallclock secs ( 0.37 usr + 0.00 sys = 0.37 CPU) @ 27027027.03/s (n=10000000) (warning: too few iterations for a reliable count) literal: 0 wallclock secs ( 0.37 usr + 0.00 sys = 0.37 CPU) @ 27027027.03/s (n=10000000) (warning: too few iterations for a reliable count) normal: 0 wallclock secs ( 0.40 usr + 0.00 sys = 0.40 CPU) @ 25000000.00/s (n=10000000) ro: 1 wallclock secs ( 0.90 usr + 0.00 sys = 0.90 CPU) @ 11111111.11/s (n=10000000) ro_simple: 5 wallclock secs ( 5.71 usr + 0.00 sys = 5.71 CPU) @ 1751313.49/s (n=10000000) rotie: 5 wallclock secs ( 4.68 usr + 0.00 sys = 4.68 CPU) @ 2136752.14/s (n=10000000) tglob: 1 wallclock secs ( 0.66 usr + 0.00 sys = 0.66 CPU) @ 15151515.15/s (n=10000000) #### Benchmark: timing 10000000 iterations of const, literal, normal, ro, ro_simple, rotie, tglob... const: 0 wallclock secs ( 0.34 usr + 0.00 sys = 0.34 CPU) @ 29411764.71/s (n=10000000) (warning: too few iterations for a reliable count) literal: 0 wallclock secs ( 0.38 usr + 0.00 sys = 0.38 CPU) @ 26315789.47/s (n=10000000) (warning: too few iterations for a reliable count) normal: 0 wallclock secs ( 0.49 usr + 0.00 sys = 0.49 CPU) @ 20408163.27/s (n=10000000) ro: 1 wallclock secs ( 0.42 usr + 0.00 sys = 0.42 CPU) @ 23809523.81/s (n=10000000) ro_simple: 2 wallclock secs ( 0.45 usr + 0.00 sys = 0.45 CPU) @ 22222222.22/s (n=10000000) rotie: 1 wallclock secs ( 0.76 usr + 0.00 sys = 0.76 CPU) @ 13157894.74/s (n=10000000) tglob: 0 wallclock secs ( 0.59 usr + 0.00 sys = 0.59 CPU) @ 16949152.54/s (n=10000000) #### package Boo; # some module I don't control from CPAN use strict; use warnings; use Readonly; Readonly::Scalar our $BOO => 'boo'; 1; #### use strict; use warnings use ReadonlyX; # take the advice of perlcritic! use Boo; # this module uses Readonly Readonly::Scalar my $FOO => 'bar'; #### perl -I . foo.pl Prototype mismatch: sub Readonly::Scalar ($;$) vs ($$) at /usr/share/perl5/Readonly.pm line 257. Prototype mismatch: sub Readonly::Scalar ($;$) vs ($$) at /usr/share/perl5/Readonly.pm line 343. Prototype mismatch: sub Readonly::Readonly (\[%@$]$) vs (\[$@%]@) at (eval 7) line 42.Management is only worried about my (our) code...not other CPAN modules that use Readonly #### use strict; use warnings; BEGIN { use Module::Loaded; use ReadonlyX; mark_as_loaded('Readonly'); } use Boo; Readonly::Scalar my $FOO => 'bar'; #### package Boo; use strict; use warnings; use File::BOM; 1; #### perl -I . foo.pl Useless use of reverse in void context at /home/rclauer/lib/perl5/File/BOM.pm line 205. Odd number of elements in hash assignment at /home/rclauer/lib/perl5/File/BOM.pm line 187. Compilation failed in require at Boo.pm line 6. BEGIN failed--compilation aborted at Boo.pm line 6. Compilation failed in require at foo.pl line 12. BEGIN failed--compilation aborted at foo.pl line 12.