in reply to Looping through Multi Dimensional Hashes
I think you've rather shot yourself in the foot with that data structure. It really makes it difficult to access the second level categories that are children of a particular category.
Personally I'd use the flexibility of Perl data structures to my advantage and build a structure like this:
#!/usr/local/bin/perl use strict; use warnings; my %category_hash = ( 1 => { name => 'whatever', children => { 2 => { name => 'something', children => { 3 => { name => 'another subcategory' } } } } }, 4 => { name => 'something else' } );
You can then display the structure with code like this:
show(\%category_hash, 0); sub show { my ($hash, $lvl) = @_; my $prefix = ' ' x $lvl; foreach (sort keys %$hash) { print "$prefix$_ : $hash->{$_}{name}\n"; show($hash->{$_}{children}, ++$lvl) if exists $hash->{$_}{children}; } }
But you should also look at the Tree modules from CPAN.
--"The first rule of Perl club is you do not talk about
Perl club."
-- Chip Salzenberg
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Looping through Multi Dimensional Hashes
by CodeJunkie (Monk) on Jul 15, 2003 at 14:11 UTC | |
by davorg (Chancellor) on Jul 15, 2003 at 14:58 UTC | |
by CodeJunkie (Monk) on Jul 15, 2003 at 15:53 UTC |