Kevin Ryde
and 1 contributors


MooseX::Iterator::Locate -- read "locate" database with MooseX::Iterator


 use MooseX::Iterator::Locate;
 my $it = MooseX::Iterator::Locate->new;
 while ($it->has_next) {
   print $it->next, "\n";


MooseX::Iterator::Locate is a subclass of Moose::Object and File::Iterator::Locate,


and has roles



MooseX::Iterator::Locate reads a "locate" database file in the style of MooseX::Iterator. It's implemented as a front-end to File::Locate::Iterator.

See examples/ in the File-Locate-Iterator sources for a complete sample program.


$it = MooseX::Iterator::Locate->new (key=>value,...)

Create and return a new MooseX::Iterator::Locate object. Optional key/value pairs are passed to File::Locate::Iterator->new.

    my $it = MooseX::Iterator::Locate->new
               (suffixes => ['.pm', '.pl']);
$entry = $it->next()

Return the next entry from the database. The first call is the first entry.

$entry = $it->peek()

Return the next entry from the database, but don't advance the iterator position. This is what $it->next would return.

(This is not the same as peek in the base MooseX::Iterator version 0.11, which gives the second next item. Believe that's a mistake there, though the intention will be to follow what the base does when resolved.)

$bool = $it->has_next()

Return true if there's a next entry available.


Move $it back to the start of the database again. The next call to $it->next gives the first entry again.

As discussed in File::Locate::Iterator under rewind(), this reset is only possible when the underlying database file or handle is a plain file or something seekable.


The various parameters accepted by new are attributes. They're all "bare" create-only, no getters or setters.

    database_file     Str
    database_fh       FileHandle
    database_str      Str
    suffix            Str
    suffixes          ArrayRef[Str]
    glob              Str
    globs             ArrayRef[Str]
    regexp            Str | RegexpRef
    regexps           ArrayRef[Str|RegexpRef]
    use_mmap          enum (type MooseX::Iterator::Locate::UseMmap)
                        "default", "if_sensible", "if_possible", "0", "1"

database_file default is File::Locate::Iterator->default_database_file(), done as a coderef default since default_database_file() looks at %ENV.


MooseX::Iterator, File::Locate::Iterator, Moose, Moose::Object




Copyright 2010, 2011, 2014 Kevin Ryde

File-Locate-Iterator is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

File-Locate-Iterator is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with File-Locate-Iterator. If not, see