how will you know how many keys are needed?

On Fri, 2002-02-01 at 14:42, Balint, Jess wrote:
> I think I will go ahead and use something like the multi-dimensional hash
> example below. What I need to do is create hashes dynamically based on how
> many are needed for this particular instance of the program. Any ideas on
> dynamic hash creation multi-dimensionally? Thanks     -jess
> 
> -----Original Message-----
> 
> On Fri, 2002-02-01 at 12:42, Balint, Jess wrote:
> > Since this is a beginners list, I thought I would be allowed to ask this
> > question. Can there be multiple values for hash keys, or just one? The
> > reason I am asking is that I am working on a statistical program and would
> > need to use multiple hashes as values of another hash. If this is
> possible,
> > please let me know. Thank you.
> > 
> > -Jess
> >
> 
> I assume you mean a multi-dimensional hash.  Perl allows infinite
> (assuming you have the resources) nesting of data structures.  This is
> accomplished by using a reference to the structure to be nested.  So for
> a three dimension hash you would first have a hash whose values were
> hash references.  Then those hashes would have values that were also
> references to hashes.  You could then access the data like this:
> 
> print $hash{'key1'}->{'key2'}->{'key3'}, "\n";
> 
> but Perl being what it is provides a little syntatic suger and lets you
> just write this:
> 
> print $hash{'key1'}{'key2'}{'key3'}, "\n";
> 
> 
> <example>
> #!/usr/bin/perl -w
> 
> use strict;
> 
> my %hash;
> 
> while (<>) {
>         my ($key1, $key2, $key3, $data) = split;
> 
>         $hash{$key1}{$key2}{$key3} = $data if $key1 and $key2 and $key3;
> }
> 
> foreach my $key1 (sort keys %hash) {
>         foreach my $key2 (sort keys %{$hash{$key1}}) {
>                 foreach my $key3 (sort keys %{$hash{$key1}{$key2}}) {
>                         print "($key1)+($key2)+($key3) returns ",
>                                 $hash{$key1}{$key2}{$key3}, "\n";
>                 }
>         }
> }
> </example>
> 
> -- 
> Today is Boomtime the 32nd day of Chaos in the YOLD 3168
> Or is it?
> 
> Missle Address: 33:48:3.521N  84:23:34.786W
-- 
Today is Boomtime the 32nd day of Chaos in the YOLD 3168
Fnord.

Missle Address: 33:48:3.521N  84:23:34.786W


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to