manpagez: man(ual) pages & more
man FileHandle(3)
Home | html | info | man
FileHandle(3pm)        Perl Programmers Reference Guide        FileHandle(3pm)


       FileHandle - supply object methods for filehandles


           use FileHandle;

           $fh = FileHandle->new;
           if ($fh->open("< file")) {
               print <$fh>;

           $fh = FileHandle->new("> FOO");
           if (defined $fh) {
               print $fh "bar\n";

           $fh = FileHandle->new("file", "r");
           if (defined $fh) {
               print <$fh>;
               undef $fh;       # automatically closes the file

           $fh = FileHandle->new("file", O_WRONLY|O_APPEND);
           if (defined $fh) {
               print $fh "corge\n";
               undef $fh;       # automatically closes the file

           $pos = $fh->getpos;

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

           ($readfh, $writefh) = FileHandle::pipe;

           autoflush STDOUT 1;


       NOTE: This class is now a front-end to the IO::* classes.

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

       "FileHandle::new_from_fd" creates a "FileHandle" like "new" does.  It
       requires two parameters, which are passed to "FileHandle::fdopen"; if
       the fdopen fails, the "FileHandle" object is destroyed.  Otherwise, it
       is returned to the caller.

       "FileHandle::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 "FileHandle::open" receives a Perl mode string (">", "+<", etc.)  or
       a POSIX fopen() mode string ("w", "r+", etc.), it uses the basic Perl
       "open" operator.

       If "FileHandle::open" is given a numeric mode, it passes that mode and
       the optional permissions value to the Perl "sysopen" operator.  For
       convenience, "FileHandle::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 FileHandle will still work.

       "FileHandle::fdopen" is like "open" except that its first parameter is
       not a filename but rather a file handle name, a FileHandle object, or a
       file descriptor number.

       If the C functions fgetpos() and fsetpos() are available, then
       "FileHandle::getpos" returns an opaque value that represents the
       current position of the FileHandle, and "FileHandle::setpos" uses that
       value to return to a previously visited position.

       If the C function setvbuf() is available, then "FileHandle::setvbuf"
       sets the buffering policy for the FileHandle.  The calling sequence for
       the Perl function is the same as its C counterpart, including the
       macros "_IOFBF", "_IOLBF", and "_IONBF", except that the buffer
       parameter specifies a scalar variable to use as a buffer.  WARNING: A
       variable used as a buffer by "FileHandle::setvbuf" must not be modified
       in any way until the FileHandle is closed or until
       "FileHandle::setvbuf" is called again, or memory corruption may result!

       See perlfunc for complete descriptions of each of the following
       supported "FileHandle" methods, which are just front ends for the
       corresponding built-in functions:


       See perlvar for complete descriptions of each of the following
       supported "FileHandle" methods:


       Furthermore, for doing normal I/O you might need these:

           See "print" in perlfunc.

           See "printf" in perlfunc.

           This works like <$fh> described in "I/O Operators" in perlop except
           that it's more readable and can be safely called in a list context
           but still returns just one line.

           This works like <$fh> when called in a list 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.

       There are many other functions available since FileHandle is descended
       from IO::File, IO::Seekable, and IO::Handle.  Please see those
       respective pages for documentation on more functions.


       The IO(3) extension, perlfunc(1), "I/O Operators" in perlop(1).

perl v5.24.0                      2015-10-14                   FileHandle(3pm)

perl 5.24 - Generated Sun Nov 13 14:01:59 CST 2016
© 2000-2017
Individual documents may contain additional copyright information.