package My::TieHashTest; require Tie::Hash; @ISA= ( Tie::StdHash ); for( qw/ TIEHASH STORE FETCH FIRSTKEY NEXTKEY EXISTS CLEAR DELETE UNTIE DESTROY / ) { eval qq{ sub $_ { notify($_); shift->SUPER::$_ } } } sub notify { warn shift, $/ } package main; use strict; use warnings; tie my %hash => 'My::TieHashTest' or die; %hash= ( a=>1, b=>2, c=>3 ); $hash{d}= 4; print $_,$/ for keys %hash; #### > t-tiehash.pl TIEHASH CLEAR STORE STORE STORE STORE FIRSTKEY NEXTKEY DESTROY