For the record that works and should work as long as it is use'd before any modules whose their sleep needs to be overriden (from LanX's answer at Copy a builtin sub to a different name and then override):
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." secon
+ds.\n";
}
};
}
1;