File Coverage

blib/lib/HTML/HeadParser/Liberal.pm
Criterion Covered Total %
statement 18 21 85.7
branch 1 2 50.0
condition n/a
subroutine 7 7 100.0
pod n/a
total 26 30 86.6


line stmt bran cond sub pod time code
1             package HTML::HeadParser::Liberal;
2 2     2   2067 use 5.008005;
  2         4  
3 2     2   7 use strict;
  2         2  
  2         48  
4 2     2   13 use warnings;
  2         2  
  2         55  
5 2     2   436 use HTML::HeadParser;
  2         4959  
  2         40  
6 2     2   7 use B::Deparse;
  2         1  
  2         234  
7              
8             our $VERSION = "0.03";
9              
10             BEGIN {
11 2 50   2   38 if ($HTML::HeadParser::VERSION < 3.71) {
12 0           my $code = "sub " . B::Deparse->new->coderef2text(\&HTML::HeadParser::start);
13              
14             # Somewhere around perl 5.18 and perl 5.20, B::Deparse got upgraded,
15             # and the resulting code looks slightly different
16             #
17             # the older ones produce:
18             # if ($$attr{'name'}) { ... }
19             # the newer ones produce:
20             # if ($attr->{'name'}) { ... }
21              
22 0           $code =~ s/
23             (
24             if
25             \s+
26             \(
27             (?:
28             \$\$attr # old tyle
29             |
30             \$attr-> # new style
31             )
32             \{'name'}
33             \)
34             \s+
35             \{
36             )
37             /$1 \$attr->{'name'} =~ s\/:\/_\/g;/gsmx;
38              
39 2     2   8 no warnings 'redefine';
  2         2  
  2         88  
40 0           *HTML::HeadParser::start = eval $code;
41             }
42             }
43              
44             1;
45             __END__