File Coverage

lib/Acme/Insult.pm
Criterion Covered Total %
statement 17 17 100.0
branch 1 2 50.0
condition 1 2 50.0
subroutine 5 5 100.0
pod 2 2 100.0
total 26 28 92.8


line stmt bran cond sub pod time code
1             package Acme::Insult 1.1 {
2 1     1   220740 use v5.38;
  1         5  
3 1     1   7 use parent 'Exporter';
  1         2  
  1         18  
4 1     1   823 use Module::Load;
  1         1824  
  1         10  
5             our %EXPORT_TAGS = ( all => [ our @EXPORT_OK = qw[insult flavors] ] );
6             #
7             my %flavor = (
8             map {
9             my $pkg = 'Acme::Insult::' . $_;
10             ( eval 'require ' . $pkg ? ( lc($_) => $pkg ) : () ),
11             } qw[Glax Evil Pirate]
12             );
13              
14 4     4 1 903127 sub insult ( $flavor //= ( keys %flavor )[ rand keys %flavor ] ) {
  4         14  
  4         6  
15 4   50     19 $flavor{$flavor} // return ();
16 4         59 my $cv = $flavor{$flavor}->can('insult');
17 4 50       48 $cv ? $cv->() : ();
18             }
19 1     1 1 305015 sub flavors () { keys %flavor }
  1         3  
  1         10  
20             }
21             1;
22             __END__