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 69     69   349 use strict;
  69         102  
  69         2010  
36 69     69   23036 use PPI::Token::Quote ();
  69         156  
  69         1086  
37 69     69   23778 use PPI::Token::_QuoteEngine::Simple ();
  69         137  
  69         11138  
38              
39             our $VERSION = '1.291';
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 2467     2467 1 10511 my $str = $_[0]->{content};
55 2467         6308 substr( $str, 1, length($str) - 2 );
56             }
57              
58              
59             my %UNESCAPE = (
60             "\\'" => "'",
61             "\\\\" => "\\",
62             );
63              
64             sub literal {
65             # Unescape \\ and \' ONLY
66 12     12 1 2181 my $str = $_[0]->string;
67 12 100       43 $str =~ s/(\\.)/$UNESCAPE{$1} || $1/ge;
  7         33  
68 12         42 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