my %hash ; tie(%hash , 'TiedHash') ; print "key: $hash{key}\n" ; if ( %hash ) { print "BOOL: 1\n" ;} else { print "BOOL: 0\n" ;} package TiedHash ; use overload ( 'bool' => sub{ print "OVER1!\n" ; } , ## print() return 1! '""' => sub{ print "OVER2!\n" ; } , '0+' => sub{ print "OVER3!\n" ; } , 'fallback' => 1 , ); sub TIEHASH { bless({}, __PACKAGE__ ) ;} sub FETCH { return( 'fetch_val' ) ;} #### my %hash = (1) ; tie(%hash , 'TiedHash') ; if ( %hash ) { print "BOOL: 1\n" ;} else { print "BOOL: 0\n" ;} package TiedHash ; sub TIEHASH { bless({}, __PACKAGE__ ) ;}