inst_trace(); foo(); bar('test'); sub foo { print "Hello "; } sub bar { print "world @_\n"; } sub inst_trace { for(keys %{*::}) { if(*{$_}{CODE}) { my $sub = $_; my $ref = \&{$sub}; *{$sub} = sub { print STDERR "$sub called\n"; &$ref; }; } } }