The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::Grepl::Results - PPI-powered grep results object

VERSION

Version 0.01

SYNOPSIS

OO interface to grepl's results

    use App::Grepl::Results;

    my $found = App::Grepl::Results->new( {
        file     => $file,
    } );
    $found->add_results( $token => \@results );

    print $found->file, "\n";
    while ( my $result = $found->next ) {
        print $result->token, "matched:\n";
        while ( my $item = $result->next ) {
            print "\t$item\n";
        }
    }

METHODS

Class Methods

new

    my $grepl = App::Grepl::Results->new( { file => $file } );

Instance Methods

file

 my $file = $result->file;
 $result->file($file);

Get or set the filename the results pertain to. Will croak if the file does not exist.

have_results

 if ( $found->have_results ) { ... }

Boolean accessor indicating if we have results for the search.

add_results

 $found->add_results( 'heredoc' => \@array_ref_of_strings );

Add results to the result object. Takes two arguments:

  • token

    This should be a string representing the result type (e.g., comment, pod, etc).

    Will croak if App::Grepl does not recognize the result type.

  • results

    This should be an array reference of strings. These are the actual results.

    Will croak if something other than an array reference is passed.

filename_only

 if ( $result->filename_only ) {
     ...
 }
 $result->filename_only(1);

A boolean getter/setter for whether or not results are 'filename only'. These are returned to indicated that a file matched the criteria. The actual matches will not be returned.

next

 while ( defined ( my $result = $found->next ) ) {
     ...
 }

Returns the next result found.

Will croak if results are requested from a 'filename_only' object.

Note that the iterator is destructive.

AUTHOR

Curtis Poe, <ovid at cpan.org>

BUGS

Please report any bugs or feature requests to bug-app-grepl at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=App-Grepl. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc App::Grepl::Results

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2007 Curtis Poe, all rights reserved.

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