<?xml version="1.0" encoding="windows-1252"?>
<node id="35303" title="varying length multi-dimensional hashes" created="2000-10-04 18:05:27" updated="2005-08-05 10:07:57">
<type id="115">
perlquestion</type>
<author id="33719">
joe</author>
<data>
<field name="doctext">
This one's got me a bit stumped:

I'd like to do something like the following:
&lt;CODE&gt;
while(&lt;&gt;) {
   ($a, $b, $c, $d) =~ /(...)(...)(...)(...)/;
   $hash{$a}{$b}{$c}{$d}++;
}
&lt;/CODE&gt;

basically, splitting the line into 3 character chunks and
placing them into a multi dimensional hash... however the line could be of arbitrary length, and I'd want to capture all the 3 character sequences (thus the hash could look like: $hash{$a}{$b}{$c}{$d}{$e}{$f}++ or just $hash{$a}++ )

Conversely, how would I read such a datastructure?  i.e.
if I know the depth of the hash, I can write:

&lt;CODE&gt;
 foreach $key (keys %hash) {
   foreach $key1 (keys %{$hash{$key}}) {
      foreach $key2 (keys %{$hash{$key}{$key1}}) {
      # do something
      }
    }
  }
&lt;/CODE&gt;

But I do not know the depth of the hash.
&lt;BR&gt;
thanks.
</field>
</data>
</node>
