File Coverage

blib/lib/Acme/XAppender.pm
Criterion Covered Total %
statement 11 11 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod 1 1 100.0
total 16 16 100.0


line stmt bran cond sub pod time code
1             package Acme::XAppender;
2              
3 2     2   32650 use strict;
  2         3  
  2         73  
4 2     2   7 use warnings;
  2         2  
  2         324  
5              
6             our $VERSION = '1.001001'; # VERSION
7              
8             require Exporter;
9             our @ISA = qw(Exporter);
10             our @EXPORT = qw(append);
11              
12             my @Ways = (
13             sub { my $str = shift; "${str}x"; },
14             sub { my $str = shift; $str . 'x'; },
15             sub { my $str = shift; my @x = $str; "$x[0]x"; },
16             sub { my $str = shift; join('x', $str, ''); },
17 2     2   990 sub { my $str = shift; join 'x', $str, !!$[; },
  2         614  
  2         346  
18             sub { my $str = shift; my $out; $out .= $_ for $str, 'x'; $out },
19             sub { my $str = shift; $str =~ s/\z/x/r; },
20             sub {
21             my $str = shift;
22             substr +(my $str1 = $str), length($str), 0, 'x';
23             $str1
24             },
25             sub { my $str = shift; $str = reverse $str; reverse "x$str" },
26             );
27              
28             sub append {
29 5000     5000 1 20619 my $str = shift;
30              
31 5000         10454 return $Ways[rand @Ways]->( $str );
32             }
33              
34             '
35             A SQL query goes into a bar, walks up to two tables and asks,
36             "Can I join you?"
37             ';
38              
39             __END__