http://qs321.pair.com?node_id=1215676


in reply to Copy a builtin sub to a different name and then override

Hi,

Which version of perl do you have?

See CORE and ex::override

#!/usr/bin/perl -- use strict; use warnings; use diagnostics; BEGIN { my $sleepcounter = 0; *CORE::GLOBAL::hex = sub { print qq{hex(@_)\n}; # goto &CORE::hex; ## FAIL CORE::hex(@_); }; *CORE::GLOBAL::sleep = sub(;@) { print qq{sleep(@_)\n}; $sleepcounter += $_[0]; CORE::sleep(@_); }; END { print "total sleep( $sleepcounter )\n"; } } print "\$]=$] \$^V=$^V\n"; sleep 1; print hex("0x50"),"\n"; sleep 2; print hex("0x50"),"\n"; __END__ $ perl core-global-sleep-override.pl $]=5.016001 $^V=v5.16.1 hex(0x50) 1 hex(0x50) 1 total sleep( 0 ) $ perl core-global-sleep-override.pl $]=5.020003 $^V=v5.20.3 sleep(1) hex(0x50) 1 sleep(2) hex(0x50) 1 total sleep( 3 )