% perl close STDERR; die "ZOMG, infinite loop!"; __END__ % #### % perl close STDOUT; print "Generate error!\n"; __END__ % #### % perl -w close STDOUT; print "Generate error!\n"; __END__ print() on closed filehandle STDOUT at - line 2. % #### % perl -w close STDOUT; close STDERR; print "Generate error!\n"; __END__ % #### % perl -w my $loop; $SIG{__WARN__}= $loop= sub { $SIG{__WARN__}= $loop; print STDERR "Got: ", @_; print "Warn: ", @_; }; close STDOUT; print "Generate warning!\n"; die "Done.\n"; __END__ Got: print() on closed filehandle STDOUT at - line 7. print() on closed filehandle STDOUT at - line 4. Done. %