logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Catmandu::DirectoryIndex::Number - A natural number based directory translator

Inherited Methods

       This Catmandu::DirectoryIndex::Number implements:

       Catmandu::DirectoryIndex

Limitations

       The keys in this directory can only be natural numbers 0,1,2 ...

Methods

new(base_dir=>$base_dir,keysize=>NUM)
       Create a new Catmandu::DirectoryIndex::Number with the following configuration parameters:

       base_dir
           See Catmandu::DirectoryIndex

       keysize
           By  default the directory structure is 3 levels deep. With the keysize option a deeper nesting can be
           created. The keysize needs to be a multiple of 3.

Name

       Catmandu::DirectoryIndex::Number - A natural number based directory translator

See Also

       Catmandu::DirectoryIndex

perl v5.40.0                                       2025-01-17              Catmandu::DirectoryIndex::Number(3pm)

Synopsis

           use Catmandu::DirectoryIndex::Number;

           my $p = Catmandu::DirectoryIndex::Number->new(
               base_dir => "/data",
               keysize => 9
           );

           # get mapping for id: { _id => 1234, _path => "/data/000/001/234" }
           # can be undef
           my $mapping = $p->get(1234);

           # create mapping for id. Path created if necessary
           my $mapping = $p->add(1234);

           # Catmandu::DirectoryIndex::Number is a Catmandu::Iterable
           # Returns list of records: [{ _id => "000001234", _path => "/data/000/001/234" }]
           my $mappings = $p->to_array();

See Also