if (%h) { ...do something with a non-empty hash }
As far as I can tell, there is no method in the tied hash class that is invoked for this. Try the following module to test:
package TieTest; use strict; use Carp; use vars qw(@ISA); use Tie::Hash; @ISA = qw( Tie::StdHash ); sub STORE { notify('STORE'); shift->SUPER::STORE(@_); } sub FETCH { notify('FETCH'); shift->SUPER::FETCH(@_); } sub FIRSTKEY { notify('FIRSTKEY'); shift->SUPER::FIRSTKEY(@_); } sub NEXTKEY { notify('NEXTKEY'); shift->SUPER::NEXTKEY(@_); } sub EXISTS { notify('EXISTS'); shift->SUPER::EXISTS(@_); } sub DELETE { notify('DELETE'); shift->SUPER::DELETE(@_); } sub CLEAR { notify('CLEAR'); shift->SUPER::CLEAR(@_); } sub notify { print shift, " here.\n"; } 1;You can use it with something like this:
#!/usr/bin/perl use TieTest; tie %h, 'TieTest'; grep($h{$_} = $_, 0 .. 9); print "Scalar test:\n"; $c = %h; print "count is $c\n";Any ideas?
In reply to RE: Re: Whither the truth of a tied hash?
by mojotoad
in thread Whither the truth of a tied hash?
by mojotoad
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |