works for me:
my $object = new wierd;
my $value = eval { $object->next_value() };
if ($@) { print "BLAH!\n$@\BLAH!\n"; }
print $value, "\n";
package wierd;
sub new { bless {}, shift}
sub next_value
{
die "badness";
}
Produces:
BLAH!
badness at ./tstprog.pl line 13.
BLAH!
Are you sure you're in a situation where you can see what's printed? What happens when the routine works and $value is something printable?
--Bob Niederman, http://bob-n.com
All code given here is UNTESTED unless otherwise stated.