The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

Data::Library::OnePerFile - one-item-per-file repository support class

SYNOPSIS

Provides a general repository service. This package supports source data in files, where each file contains a single source item. A tag corresponds to a filename (tag.EXTENSION where EXTENSION is specified at initialization). Searching will be done through a list of directories. The first matching file will be used. Conflicts are not detected.

OnePerFile recognizes when a source file is changed.

METHODS

new
my $library = new Data::Library::OnePerFile
({ name => "value" ... });

Supported Library::OnePerFile parameters:

LIB Search path for data files. Defaults to current directory.
EXTENSION Filename extension for data files. Defaults to "data".
lookup
$library->lookup($tag);

Returns cached data items. If the source has changed since it was cached, returns false.

find
$library->find($tag);

Searches through the directory path in LIB for a file named "$tag.EXTENSION". Returns the contents of that file if successful, and records the path for subsequent checking by lookup().

cache
$library->cache($tag, $data);

Caches data by tag for later fetching via lookup().

toc
my @array = $library->toc();

Search through the library and return a list of all available entries. Does not import any of the items.

reset
$library->reset;

Erase all entries from the cache.

AUTHOR

Jason W. May <jmay@pobox.com>

COPYRIGHT

Copyright (C) 2001,2002 Jason W. May. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 45:

'=item' outside of any '=over'

Around line 232:

You forgot a '=back' before '=head1'