filecache(3)
NAME
FileCache - keep more files open than the system permits
SYNOPSIS
use FileCache; # or use FileCache maxopen => 16; cacheout $path; print $path @data; cacheout $mode, $path; print $path @data;
DESCRIPTION
The "cacheout" function will make sure that there's a
filehandle open for reading or writing available as the
pathname you give it. It automatically closes and re-opens
files if you exceed your system's maximum number of file
descriptors, or the suggested maximum.
- cacheout EXPR
- The 1-argument form of cacheout will open a file for
writing ('>') on it's first use, and appending ('>>')
thereafter. - cacheout MODE, EXPR
- The 2-argument form of cacheout will use the supplied
mode for the initial and subsequent openings. Most
valid modes for 3-argument "open" are supported
namely; '>', '+>', '<', '<+', '>>', '|-' and '-|'
CAVEATS
If you use cacheout with '|-' or '-|' you should catch
SIGPIPE and explicitly close the filehandle., when it is
closed from the other end some cleanup needs to be done.
While it is permissible to "close" a FileCache managed
file, do not do so if you are calling "FileCache::cache
out" from a package other than which it was imported, or
with another module which overrides "close". If you must,
use "FileCache::cacheout_close".
BUGS
- sys/param.h lies with its "NOFILE" define on some systems,
so you may have to set maxopen ($FileCache::cacheout_max_
open) yourself.