← Index
NYTProf Performance Profile   « line view »
For /Users/timbo/perl5/perlbrew/perls/perl-5.18.2/bin/perlcritic
  Run on Sat Mar 19 22:12:22 2016
Reported on Sat Mar 19 22:14:10 2016

Filename/Users/timbo/perl5/perlbrew/perls/perl-5.18.2/lib/site_perl/5.18.2/PPI/Token/Quote.pm
StatementsExecuted 9 statements in 259µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1116.72ms47.2msPPI::Token::Quote::::BEGIN@49PPI::Token::Quote::BEGIN@49
11136µs36µsPPI::Token::Quote::::BEGIN@52PPI::Token::Quote::BEGIN@52
11111µs22µsPPI::Token::Quote::::BEGIN@48PPI::Token::Quote::BEGIN@48
11110µs52µsPPI::Token::Quote::::BEGIN@51PPI::Token::Quote::BEGIN@51
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package PPI::Token::Quote;
2
3=pod
4
5=head1 NAME
6
7PPI::Token::Quote - String quote abstract base class
8
9=head1 INHERITANCE
10
11 PPI::Token::Quote
12 isa PPI::Token
13 isa PPI::Element
14
15=head1 DESCRIPTION
16
17The C<PPI::Token::Quote> class is never instantiated, and simply
18provides a common abstract base class for the four quote classes.
19In PPI, a "quote" is limited to only the quote-like things that
20themselves directly represent a string. (although this includes
21double quotes with interpolated elements inside them).
22
23The subclasses of C<PPI::Token::Quote> are:
24
25=over 2
26
27=item C<''> - L<PPI::Token::Quote::Single>
28
29=item C<q{}> - L<PPI::Token::Quote::Literal>
30
31=item C<""> - L<PPI::Token::Quote::Double>
32
33=item C<qq{}> - L<PPI::Token::Quote::Interpolate>
34
35=back
36
37The names are hopefully obvious enough not to have to explain what
38each class is here. See their respective pages for more details.
39
40Please note that although the here-doc B<does> represent a literal
41string, it is such a nasty piece of work that in L<PPI> it is given the
42honor of its own token class (L<PPI::Token::HereDoc>).
43
44=head1 METHODS
45
46=cut
47
48217µs232µs
# spent 22µs (11+11) within PPI::Token::Quote::BEGIN@48 which was called: # once (11µs+11µs) by PPI::Token::Quote::Single::BEGIN@38 at line 48
use strict;
# spent 22µs making 1 call to PPI::Token::Quote::BEGIN@48 # spent 11µs making 1 call to strict::import
49298µs147.2ms
# spent 47.2ms (6.72+40.5) within PPI::Token::Quote::BEGIN@49 which was called: # once (6.72ms+40.5ms) by PPI::Token::Quote::Single::BEGIN@38 at line 49
use PPI::Token ();
# spent 47.2ms making 1 call to PPI::Token::Quote::BEGIN@49
50
51246µs293µs
# spent 52µs (10+42) within PPI::Token::Quote::BEGIN@51 which was called: # once (10µs+42µs) by PPI::Token::Quote::Single::BEGIN@38 at line 51
use vars qw{$VERSION @ISA};
# spent 52µs making 1 call to PPI::Token::Quote::BEGIN@51 # spent 42µs making 1 call to vars::import
52
# spent 36µs within PPI::Token::Quote::BEGIN@52 which was called: # once (36µs+0s) by PPI::Token::Quote::Single::BEGIN@38 at line 55
BEGIN {
531500ns $VERSION = '1.215';
54140µs @ISA = 'PPI::Token';
55155µs136µs}
# spent 36µs making 1 call to PPI::Token::Quote::BEGIN@52
56
- -
61#####################################################################
62# PPI::Token::Quote Methods
63
64=pod
65
66=head2 string
67
68The C<string> method is provided by all four ::Quote classes. It won't
69get you the actual literal Perl value, but it will strip off the wrapping
70of the quotes.
71
72 # The following all return foo from the ->string method
73 'foo'
74 "foo"
75 q{foo}
76 qq <foo>
77
78=begin testing string 15
79
80# Prove what we say in the ->string docs
81my $Document = PPI::Document->new(\<<'END_PERL');
82 'foo'
83 "foo"
84 q{foo}
85 qq <foo>
86END_PERL
87isa_ok( $Document, 'PPI::Document' );
88
89my $quotes = $Document->find('Token::Quote');
90is( ref($quotes), 'ARRAY', 'Found quotes' );
91is( scalar(@$quotes), 4, 'Found 4 quotes' );
92foreach my $Quote ( @$quotes ) {
93 isa_ok( $Quote, 'PPI::Token::Quote');
94 can_ok( $Quote, 'string' );
95 is( $Quote->string, 'foo', '->string returns "foo" for '
96 . $Quote->content );
97}
98
99=end testing
100
101=cut
102
103#sub string {
104# my $class = ref $_[0] || $_[0];
105# die "$class does not implement method ->string";
106#}
107
108=pod
109
110=head2 literal
111
112The C<literal> method is provided by ::Quote:Literal and
113::Quote::Single. This returns the value of the string as Perl sees
114it: without the quote marks and with C<\\> and C<\'> resolved to C<\>
115and C<'>.
116
117The C<literal> method is not implemented by ::Quote::Double or
118::Quote::Interpolate yet.
119
120=cut
121
12212µs1;
123
124=pod
125
126=head1 SUPPORT
127
128See the L<support section|PPI/SUPPORT> in the main module.
129
130=head1 AUTHOR
131
132Adam Kennedy E<lt>adamk@cpan.orgE<gt>
133
134=head1 COPYRIGHT
135
136Copyright 2001 - 2011 Adam Kennedy.
137
138This program is free software; you can redistribute
139it and/or modify it under the same terms as Perl itself.
140
141The full text of the license can be found in the
142LICENSE file included with this module.
143
144=cut