use vars qw( $ERROR );
sub new { bless {}, shift }
sub error {
my $msg = $_[1];
$msg .= "\n" unless $msg =~ /\n$/;
if (ref($_[0])) {
$_[0]->{_errstr} = $msg;
} else {
$ERROR = $msg;
}
return;
}
sub errstr { ref($_[0]) ? $_[0]->{_errstr} : $ERROR }
####
return $obj->error("Got an error") unless $foo; ## OR
return $class->error("Got an error") unless $foo;
####
$obj->foo or die $obj->errstr; ## OR
My::Class->foo or die My::Class->errstr;