Perl 5 version 30.0 documentation


  • fileno FILEHANDLE

  • fileno DIRHANDLE

    Returns the file descriptor for a filehandle or directory handle, or undefined if the filehandle is not open. If there is no real file descriptor at the OS level, as can happen with filehandles connected to memory objects via open with a reference for the third argument, -1 is returned.



    1. if (fileno($this) != -1 && fileno($this) == fileno($that)) {
    2. print "\$this and \$that are dups\n";
    3. } elsif (fileno($this) != -1 && fileno($that) != -1) {
    4. print "\$this and \$that have different " .
    5. "underlying file descriptors\n";
    6. } else {
    7. print "At least one of \$this and \$that does " .
    9. }

    The behavior of fileno on a directory handle depends on the operating system. On a system with dirfd(3) or similar, fileno on a directory handle returns the underlying file descriptor associated with the handle; on systems with no such support, it returns the undefined value, and sets $! (errno).