package my_logging; my %log_handler; sub __log_init { $log_handler{$_[0]}=sub{ 1 }; } sub log_handler { my ($class,$sub)=@_; return 0 unless ref $sub eq 'CODE'; $log_handler{$class}=$sub; return 1; } sub __do_log { return $log_handler{shift()}->(@_); } 1;