From: Kevin G. <ke...@go...> - 2003-01-24 18:14:40
|
Mike, I found a problem with this guy in Logger.pm \$message = [map { ref \$_ eq "HASH" ? \$_->{filter}->(\$_->{value}) : ref \$_ eq "CODE" ? \$_->() : \$_ } \@_]; If an innocent hashref unexpectely gets into the logging statement $logger->fatal('fatal message',1234,'foo',{aaa => 'aaa'}); then it tries to call the method on the innocent hashref and dies Can't use string ("") as a subroutine ref while "strict refs" in use at (eval 118) line 17. So instead we need to do something like this ugliness (maybe it's time to unroll the map into a loop) \$message = [map { ref \$_ eq "HASH" && exists \$_->{filter} && ref \$_->{filter} eq "CODE" ? \$_->{filter}->(\$_->{value}) : ref \$_ eq "CODE" ? \$_->() : \$_ } \@_]; -- Happy Trails . . . Kevin M. Goess (and Anne and Frank) 904 Carmel Ave. Albany, CA 94706 (510) 525-5217 |