PPIx-IndexLines

 view release on metacpan or  search on metacpan

lib/PPIx/IndexLines.pm  view on Meta::CPAN

    next if exists $self->{ 'line' }{ $line_number };

    $self->{ 'line' }{ $_ } = $info for $last_line_number + 1 .. $line_number - 1;

    $last_line_number = $line_number;

    my $node_type = ref $e;

    $self->{ 'line' }{ $line_number } = $info = exists $lookup{ $node_type } ? $lookup{ $node_type }->( $e ) : $package;

  }
} ## end sub index_lines

sub line_type { $_[ 0 ]->{ 'line' }{ $_[ 1 ] } || '' }

1;

__END__

=pod

=head1 NAME

PPIx::IndexLines - Given a line number, returns some basic information about where in the perl document you are

=head1 VERSION

version 0.05

=head1 SYNOPSIS

  #!/usr/bin/perl
  use strict;
  use warnings;
  use PPIx::IndexLines;
  my $document = PPIx::IndexLines->new( +shift );
  $document->index_lines;
  print $document->line_type( +shift );

=head1 METHODS

=head2 new

Accepts either a scalar or a scalar reference.  This is passed directly to
PPI::Document::new, so the same rules as in that method apply.

Basically, if you pass in a scalar, it will be assumed to be a filename and
said file will be loaded and parsed.

Otherwise, a scalar reference is assumed to be a PPI document and will be
parsed directly.

=head2 index_lines

Call this method to index the lines for the new PPI::Document.

=head2 line_type

Call this method with a line number, it will return one of

  BEGIN CHECK UNITCHECK INIT END POD __DATA__ __END__

or

  <PackageName>::<SubName>

=head1 INSTALLATION

See perlmodinstall for information and options on installing Perl modules.

=head1 SEE ALSO

Please see those modules/websites for more information related to this module.

=over 4

=item *

L<PPIx::IndexOffsets>

=item *

L<PPIx::LineToSub>

=back

=head1 AUTHOR

Alan Young <harleypig@gmail.com>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by Alan Young.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut



( run in 2.063 seconds using v1.01-cache-2.11-cpan-98e64b0badf )