# the $api object is declared up here in file scope sub new { # return the stored object if we've already run new() if (defined $api){ $log->_5('returning stored API object'); return $api; } my $self = bless {}, shift; my $caller = (caller)[0]; $self->_args(@_, caller => $caller); warn "API in test mode\n" if $self->testing; $self->_init; $api = $self; $log->_5("successfully initialized the system"); if (! $self->testing && ! defined $events){ $self->events; $log->_5('successfully created new async events') } else { $log->_5("async events have already been spawned"); } return $self; }