File Coverage

blib/lib/For/Else.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 16 100.0


line stmt bran cond sub pod time code
1             package For::Else;
2              
3 1     1   25686 use strict;
  1         2  
  1         41  
4 1     1   6 use warnings;
  1         2  
  1         32  
5              
6 1     1   741 use version 0.77;
  1         2138  
  1         7  
7             our $VERSION = qv("v1.0.0");
8              
9 1     1   1105 use Filter::Simple;
  1         31371  
  1         8  
10              
11             my $parens_block;
12              
13             $parens_block = qr{
14             [(]
15             (?>
16             [^()]+ | (??{ $parens_block })
17             )*
18             [)]
19             }smx;
20              
21             my $code_block;
22              
23             $code_block = qr{
24             {
25             (?>
26             [^{}]+ | (??{ $code_block })
27             )*
28             }
29             }smx;
30              
31             FILTER_ONLY
32             'code' => sub {
33             1 while
34             s{
35             ( for(?:each)? [^(]* ($parens_block) \s*
36             $code_block ) \s*
37             ( else \s*
38             $code_block )
39             }{
40             if $2
41             {
42             $1
43             }
44             $3
45             }smx;
46             };
47              
48             1;
49              
50             __END__