Adam Kennedy > PPI > PPI::Token::Quote::Double

Download:
PPI-1.206.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  40
Open  28
View Bugs
Report a bug
Module Version: 1.206   Source  

NAME ^

PPI::Token::Quote::Double - A standard "double quote" token

INHERITANCE ^

  PPI::Token::Quote::Double
  isa PPI::Token::Quote
      isa PPI::Token
          isa PPI::Element

DESCRIPTION ^

A PPI::Token::Quote::Double object represents a double-quoted interpolating string.

The string is treated as a single entity, PPI will not try to understand what is in the string during the parsing process.

METHODS ^

There are several methods available for PPI::Token::Quote::Double, beyond those provided by the parent PPI::Token::Quote, PPI::Token and PPI::Element classes.

Got any ideas for methods? Submit a report to rt.cpan.org!

interpolations

The interpolations method checks to see if the double quote actually contains any interpolated variables.

Returns true if the string contains interpolations, or false if not.

# Get a set of objects my $Document = PPI::Document->new(\<<'END_PERL'); "no interpolations" "no \@interpolations" "has $interpolation" "has @interpolation" "has \\@interpolation" "" # False content to test double-negation scoping END_PERL isa_ok( $Document, 'PPI::Document' ); my $strings = $Document->find('Token::Quote::Double'); is( scalar @{$strings}, 6, 'Found the 6 test strings' ); is( $strings->[0]->interpolations, '', 'String 1: No interpolations' ); is( $strings->[1]->interpolations, '', 'String 2: No interpolations' ); is( $strings->[2]->interpolations, 1, 'String 3: Has interpolations' ); is( $strings->[3]->interpolations, 1, 'String 4: Has interpolations' ); is( $strings->[4]->interpolations, 1, 'String 5: Has interpolations' ); is( $strings->[5]->interpolations, '', 'String 6: No interpolations' );

simplify

For various reasons, some people find themselves compelled to have their code in the simplest form possible.

The simply method will turn a simple double-quoted string into the equivalent single-quoted string.

If the double can be simplified, it will be modified in place and returned as a convenience, or returns false if the string cannot be simplified.

my $Document = PPI::Document->new(\<<'END_PERL'); "no special characters" "has \"double\" quotes" "has 'single' quotes" "has $interpolation" "has @interpolation" "" END_PERL isa_ok( $Document, 'PPI::Document' ); my $strings = $Document->find('Token::Quote::Double'); is( scalar @{$strings}, 6, 'Found the 6 test strings' ); is( $strings->[0]->simplify, q<'no special characters'>, 'String 1: No special characters' ); is( $strings->[1]->simplify, q<"has \"double\" quotes">, 'String 2: Double quotes' ); is( $strings->[2]->simplify, q<"has 'single' quotes">, 'String 3: Single quotes' ); is( $strings->[3]->simplify, q<"has $interpolation">, 'String 3: Has interpolation' ); is( $strings->[4]->simplify, q<"has @interpolation">, 'String 4: Has interpolation' ); is( $strings->[5]->simplify, q<''>, 'String 6: Empty string' );

my $Document = PPI::Document->new( \'print "foo";' ); isa_ok( $Document, 'PPI::Document' ); my $Double = $Document->find_first('Token::Quote::Double'); isa_ok( $Double, 'PPI::Token::Quote::Double' ); is( $Double->string, 'foo', '->string returns as expected' );

SUPPORT ^

See the support section in the main module.

AUTHOR ^

Adam Kennedy <adamk@cpan.org>

COPYRIGHT ^

Copyright 2001 - 2009 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.