----- Original Message -----
From: "David Christensen" <[email protected]>
$ cat trap-print-errors.pl
#!/usr/bin/perl
use strict;
use warnings;
$| = 1;
sub myprint($@)
{
my $s = shift;
eval {
### circumvent Can't use string ("*STDOUT") as a symbol ref...
no strict 'refs';
print $s @_;
Replace the above line with:
print $s @_ or die "Can't print: $!";
};
print "trapped error $@" if $@;
}
myprint '*STDOUT', "hello, world!\n";
myprint '*NOSUCH', "goodbye, cruel world!";
[snip]
print() on unopened filehandle NOSUCH at trap-print-errors.pl line 12.
That is not a fatal error - it does not cause the script to die.
Hence it's not something that can be trapped in an eval{} block.
Cheers
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/