sub is_writable_fh { my($fh)=@_; local $\=''; return print $fh ''; } open(F1,"< $0") or die "Couldn't open '$0' for read: $!\n"; print "F1 is".(is_writable_fh(\*F1)?"":"n't")." writable.\n"; open(F2,">> $0") or die "Couldn't open '$0' for append: $!\n"; print "F2 is".(is_writable_fh(\*F2)?"":"n't")." writable.\n";