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.