File Coverage

blib/lib/PPI/Token/Quote/Single.pm
Criterion Covered Total %
statement 15 15 100.0
branch 2 2 100.0
condition n/a
subroutine 5 5 100.0
pod 2 2 100.0
total 24 24 100.0


line stmt bran cond sub pod time code
1             package PPI::Token::Quote::Single;
2              
3             =pod
4              
5             =head1 NAME
6              
7             PPI::Token::Quote::Single - A 'single quote' token
8              
9             =head1 INHERITANCE
10              
11             PPI::Token::Quote::Single
12             isa PPI::Token::Quote
13             isa PPI::Token
14             isa PPI::Element
15              
16             =head1 SYNOPSIS
17              
18             'This is a single quote'
19            
20             q{This is a literal, but NOT a single quote}
21              
22             =head1 DESCRIPTION
23              
24             A C object represents a single quoted string
25             literal.
26              
27             =head1 METHODS
28              
29             There are no methods available for C beyond
30             those provided by the parent L, L and
31             L classes.
32              
33             =cut
34              
35 65     65   376 use strict;
  65         119  
  65         1858  
36 65     65   22120 use PPI::Token::Quote ();
  65         141  
  65         1162  
37 65     65   21893 use PPI::Token::_QuoteEngine::Simple ();
  65         153  
  65         9640  
38              
39             our $VERSION = '1.276';
40              
41             our @ISA = qw{
42             PPI::Token::_QuoteEngine::Simple
43             PPI::Token::Quote
44             };
45              
46              
47              
48              
49              
50             #####################################################################
51             # PPI::Token::Quote Methods
52              
53             sub string {
54 2401     2401 1 12277 my $str = $_[0]->{content};
55 2401         6993 substr( $str, 1, length($str) - 2 );
56             }
57              
58              
59             my %UNESCAPE = (
60             "\\'" => "'",
61             "\\\\" => "\\",
62             );
63              
64             sub literal {
65             # Unescape \\ and \' ONLY
66 10     10 1 2109 my $str = $_[0]->string;
67 10 100       44 $str =~ s/(\\.)/$UNESCAPE{$1} || $1/ge;
  7         35  
68 10         37 return $str;
69             }
70              
71             1;
72              
73             =pod
74              
75             =head1 SUPPORT
76              
77             See the L in the main module.
78              
79             =head1 AUTHOR
80              
81             Adam Kennedy Eadamk@cpan.orgE
82              
83             =head1 COPYRIGHT
84              
85             Copyright 2001 - 2011 Adam Kennedy.
86              
87             This program is free software; you can redistribute
88             it and/or modify it under the same terms as Perl itself.
89              
90             The full text of the license can be found in the
91             LICENSE file included with this module.
92              
93             =cut