NAME

FileHandle::Fmode - determine whether a filehandle is opened for reading, writing, or both.

SYNOPSIS

use FileHandle::Fmode qw(:all);
.
.
#$fh and FH are open filehandles
print is_R($fh), "\n";
print is_W(\*FH), "\n";

FUNCTIONS

$bool = is_arg_ok($fh);
$bool = is_arg_ok(\*FH);
 Returns 0 if its argument, when passed to any of the below functions, 
 would cause a fatal exception - ie die().
 Else returns 1.

Arguments to the following functions must be open filehandles.
If any of the following functions receive an argument that is not an  
open filehandle then the function dies with an appropriate error message.
To ensure that your script won't die, you could first check by passing
the argument to is_arg_ok(). Or you could wrap the function call in 
an eval{} block. 

$bool = is_R($fh);
$bool = is_R(\*FH);
 Returns true if the filehandle is readable.
 Else returns false.

$bool = is_W($fh);
$bool = is_W(\*FH);
 Returns true if the filehandle is writable.
 Else returns false

$bool = is_RO($fh);
$bool = is_RO(\*FH);
 Returns true if the filehandle is readable but not writable.
 Else returns false

$bool = is_WO($fh);
$bool = is_WO(\*FH);
 Returns true if the filehandle is writable but not readable.
 Else returns false

$bool = is_RW($fh);
$bool = is_RW(\*FH);
 Returns true if the filehandle is both readable and writable.
 Else returns false

CREDITS

Inspired (hmmm ... is that the right word ?) by an idea from BrowserUK
posted on PerlMonks in response to a question from dragonchild. Win32
code (including XS code) provided by BrowserUK. Zaxo presented the idea 
of using fcntl() in an earlier PerlMonks thread.

Thanks also to dragonchild and BrowserUK for steering this module in
the right direction.

Also thanks to attn.steven.kuo for directing me to the perliol routines
that enable us to query filehandles attached to memory objects.

LICENSE

This program is free software; you may redistribute it and/or 
modify it under the same terms as Perl itself.

AUTHOR

Sisyphus <kalinabears at iinet dot net dot au>