package PPI::Token::Quote; =pod =head1 NAME PPI::Token::Quote - String quote abstract base class =head1 INHERITANCE PPI::Token::Quote isa PPI::Token isa PPI::Element =head1 DESCRIPTION The C class is never instantiated, and simply provides a common abstract base class for the four quote classes. In PPI, a "quote" is limited to only the quote-like things that themselves directly represent a string. (although this includes double quotes with interpolated elements inside them). The subclasses of C are: =over 2 =item C<''> - L =item C - L =item C<""> - L =item C - L =back The names are hopefully obvious enough not to have to explain what each class is here. See their respective pages for more details. Please note that although the here-doc B represent a literal string, it is such a nasty piece of work that in L it is given the honor of its own token class (L). =head1 METHODS =cut use strict; use PPI::Token (); use vars qw{$VERSION @ISA}; BEGIN { $VERSION = '1.236'; @ISA = 'PPI::Token'; } ##################################################################### # PPI::Token::Quote Methods =pod =head2 string The C method is provided by all four ::Quote classes. It won't get you the actual literal Perl value, but it will strip off the wrapping of the quotes. # The following all return foo from the ->string method 'foo' "foo" q{foo} qq =cut #sub string { # my $class = ref $_[0] || $_[0]; # die "$class does not implement method ->string"; #} =pod =head2 literal The C method is provided by ::Quote::Literal and ::Quote::Single. This returns the value of the string as Perl sees it: without the quote marks and with C<\\> and C<\'> resolved to C<\> and C<'>. The C method is not implemented by ::Quote::Double or ::Quote::Interpolate yet. =cut 1; =pod =head1 SUPPORT See the L in the main module. =head1 AUTHOR Adam Kennedy Eadamk@cpan.orgE =head1 COPYRIGHT Copyright 2001 - 2011 Adam Kennedy. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut