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.