../lib/FileHandle.pm
FileHandle - supply object methods for filehandles
cacheout - keep more files open than the system permits
    use FileHandle;
    autoflush STDOUT 1;
    cacheout($path);
    print $path @data;
See the perlvar  manpage
 for complete descriptions of each of the following supported FileHandle 
methods:
    autoflush
    output_field_separator
    output_record_separator
    input_record_separator
    input_line_number
    format_page_number
    format_lines_per_page
    format_lines_left
    format_name
    format_top_name
    format_line_break_characters
    format_formfeed
Furthermore, for doing normal I/O you might need these:
- 
$fh->print
- 
See print.
 
- 
$fh->printf
- 
See printf.
 
- 
$fh->getline
- 
This works like <$fh> described in ``I/O Operators'' except that it's more readable 
and can be safely called in an array context but still
returns just one line.
 
- 
$fh->getlines
- 
This works like <$fh> when called in an array context to
read all the remaining lines in a file, except that it's more readable.
It will also croak() if accidentally called in a scalar context.
 
 The cacheout() Library
The cacheout() function will make sure that there's a filehandle
open for writing available as the pathname you give it.  It automatically
closes and re-opens files if you exceed your system file descriptor maximum.
the perlfunc  manpage
, 
``I/O Operators'',
POSIX/``FileHandle''
sys/param.h lies with its NOFILE define on some systems,
so you may have to set $cacheout::maxopen yourself.
Some of the methods that set variables (like format_name()) don't
seem to work.
The POSIX functions that create FileHandle methods should be
in this module instead.
Due to backwards compatibility, all filehandles resemble objects
of class FileHandle, or actually classes derived from that class.
They actually aren't.  Which means you can't derive your own 
class from FileHandle and inherit those methods.