GNU/Linux |
RedHat 9.0(Shrike) |
|
![]() |
FileCache(3pm) |
![]() |
FileCache − keep more files open than the system permits
use FileCache; # or use FileCache maxopen => 16; cacheout $path; print $path @data; cacheout $mode, $path; print $path @data;
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 ’−⎪’
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::cacheout" from a package other than which it was imported, or with another module which overrides "close". If you must, use "FileCache::cacheout_close".
sys/param.h lies with its "NOFILE" define on some systems, so you may have to set maxopen ($FileCache::cacheout_maxopen) yourself.
![]() |
FileCache(3pm) | ![]() |