=over

=item fileno FILEHANDLE
X<fileno>

Returns the file descriptor for a filehandle, 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
C<open> with a reference for the third argument, -1 is returned.

This is mainly useful for constructing
bitmaps for C<select> and low-level POSIX tty-handling operations.
If FILEHANDLE is an expression, the value is taken as an indirect
filehandle, generally its name.

You can use this to find out whether two handles refer to the
same underlying descriptor:

    if (fileno(THIS) == fileno(THAT)) {
        print "THIS and THAT are dups\n";
    }

=back