../lib/FileHandle.pm

NAME

FileHandle - supply object methods for filehandles

cacheout - keep more files open than the system permits


SYNOPSIS

use FileHandle; autoflush STDOUT 1; cacheout($path); print $path @data;


DESCRIPTION

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.


SEE ALSO

the perlfunc manpage , ``I/O Operators'', POSIX/``FileHandle''


BUGS

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.