in reply to Catching errors in closing lexical filehandles
Initial Devel::UncheckedOps, a macro for perl will also let you override print $fh ... though you'll only trap the implicit $fh->close() with merlyn's setting of IO::File::DESTROY.