"$Bill Luebkert"                                                 
                                                 
                      <[EMAIL PROTECTED]>            To:      Philip Morley 
<[EMAIL PROTECTED]>                                       
                                               cc:      
[EMAIL PROTECTED]                                             
                      05/11/02 12:31           Subject: Re: Evaluating 
multi-dimensional hashes                                         
                                                                                       
                                                 
                                                                                       
                                                 







Philip Morley wrote:
> $VAR1 = {
>           'level1' => {
>                         'level2' => {
>                                         'level3' => {}
>                                     }
>                       }
>         }
>
>
> The above is the contents of a multi-dimensional hash I have produced
from
> parsing an XML String.  (The Data::Dumper formatting has been adjusted
for
> brevity).
>
> What I want to do is check whether level3 is "null" (i.e. contains no
value
> or sub-hashes), but I can't work out a way of expressing this.
>
> I have the reference to the hash, named $XMLRef, and when printing
> something like:
>
> print "$$XMLRef{level1}{level2}{level3}";
>
> I get a HASHREF printed.
>
> How can I evaluate if $$XMLRef{level1}{level2}{level3} is null?

Maybe something like this:

my %hash = (
             'level1' => {
                         'level2' => {
                                     'level3' => { }
                         }
             }
);
my $XMLRef = \%hash;
print scalar keys %{$XMLRef->{level1}{level2}{level3}}, "\n";

__END__

Thanks fo that.

One extra question -

print scalar keys %{$XMLRef->{level1}{level2}{level4}}, "\n";

will print 0 with the above example.  How can I tell if a subkey exists in
a hash (level4 doesn't in this example)?

Thanks,

Phil.








_______________________________________________
ActivePerl mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to