package Override::Sleep; # based on LanX's answer at https://perlmonks.org/?node_id=1215668 our $total_sleep_time = 0; our $DEBUG = 0; BEGIN { my $oldsleep = \&CORE::sleep; *CORE::GLOBAL::sleep = sub(;$) { #$Override::Sleep::total_sleep_time += CORE::sleep($_[0]); $Override::Sleep::total_sleep_time += $oldsleep->($_[0]); if( $Override::Sleep::DEBUG ){ my $parent = ( caller(1) )[3] || "N/A"; print 'CORE::GLOBAL::sleep('.$_[0].") (called by $parent): total sleep time is now ".$Override::Sleep::total_sleep_time." seconds.\n"; } }; } 1;