package Err; sub new { return bless {}, shift; } sub err { my $self = shift; my %args = @_; # Do something with %args here } #### $handler ||= new Err; # time passes &do_right_thing() or $handler->err(title=>'Oops',msg=>'something went wrong');