Ilya Zakharevich

NAME

IO::File - supply object methods for filehandles

SYNOPSIS

    use IO::File;

    $fh = new IO::File;
    if ($fh->open "< file") {
        print <$fh>;
        $fh->close;
    }

    $fh = new IO::File "> FOO";
    if (defined $fh) {
        print $fh "bar\n";
        $fh->close;
    }

    $fh = new IO::File "file", "r";
    if (defined $fh) {
        print <$fh>;
        undef $fh;       # automatically closes the file
    }

    $fh = new IO::File "file", O_WRONLY|O_APPEND;
    if (defined $fh) {
        print $fh "corge\n";
        undef $fh;       # automatically closes the file
    }

    $pos = $fh->getpos;
    $fh->setpos $pos;

    $fh->setvbuf($buffer_var, _IOLBF, 1024);

    autoflush STDOUT 1;

DESCRIPTION

IO::File::new creates a IO::File, which is a reference to a newly created symbol (see the Symbol package). If it receives any parameters, they are passed to IO::File::open; if the open fails, the IO::File object is destroyed. Otherwise, it is returned to the caller.

IO::File::open accepts one parameter or two. With one parameter, it is just a front end for the built-in open function. With two parameters, the first parameter is a filename that may include whitespace or other special characters, and the second parameter is the open mode, optionally followed by a file permission value.

If IO::File::open receives a Perl mode string (">", "+<", etc.) or a POSIX fopen() mode string ("w", "r+", etc.), it uses the basic Perl open operator.

If IO::File::open is given a numeric mode, it passes that mode and the optional permissions value to the Perl sysopen operator. For convenience, IO::File::import tries to import the O_XXX constants from the Fcntl module. If dynamic loading is not available, this may fail, but the rest of IO::File will still work.

SEE ALSO

perlfunc, "I/O Operators" in perlop, "IO::Handle" "IO::Seekable"

HISTORY

Derived from FileHandle.pm by Graham Barr <bodg@tiuk.ti.com>

REVISION

$Revision: 1.3 $