package PPI::Token::Data; =pod =head1 NAME PPI::Token::Data - The actual data in the __DATA__ section of a file =head1 INHERITANCE PPI::Token::Data isa PPI::Token isa PPI::Element =head1 DESCRIPTION The C class is used to represent the actual data inside a file's C<__DATA__> section. One C object is used to represent the entire of the data, primarily so that it can provide a convenient handle directly to the data. =head1 METHODS C provides one method in addition to those provided by our parent L and L classes. =cut use strict; use IO::String (); use PPI::Token (); use vars qw{$VERSION @ISA}; BEGIN { $VERSION = '1.236'; @ISA = 'PPI::Token'; } ##################################################################### # Methods =pod =head2 handle The C method returns a L handle that allows you to do all the normal handle-y things to the contents of the __DATA__ section of the file. Unlike in perl itself, this means you can also do things like C new data onto the end of the __DATA__ section, or modify it with any other process that can accept an L as input or output. Returns an L object. =cut sub handle { my $self = shift; IO::String->new( \$self->{content} ); } sub __TOKENIZER__on_line_start { my ( $self, $t ) = @_; # Add the line if ( defined $t->{token} ) { $t->{token}->{content} .= $t->{line}; } else { defined( $t->{token} = $t->{class}->new( $t->{line} ) ) or return undef; } return 0; } 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