You can't actually put anything except scalars into a hash or an array, so you have to put a reference to the array into the hash.
@b_griph = ('foo', 'bar'); %griph=('c' => \@c_griph, 'b' => \@b_griph, 'f' => \@f_griph, 'o' => \@o_griph, 'r' => \@r_griph, 'm' => \@m_griph, 'y' => \@y_griph, 'g' => \@g_griph, 'p' => \@p_griph, 'w' => \@w_griph); print "c = ",@{$griph{'c'}},"\n"; print "b = ",@{$griph{'b'}},"\n"; print "f = ",@{$griph{'f'}},"\n"; print "o = ",@{$griph{'o'}},"\n"; print "r = ",@{$griph{'r'}},"\n"; print "m = ",@{$griph{'m'}},"\n"; print "y = ",@{$griph{'y'}},"\n"; print "g = ",@{$griph{'g'}},"\n"; print "p = ",@{$griph{'p'}},"\n"; print "w = ",@{$griph{'w'}},"\n"; __END__ output ====== c = b = foobar f = o = r = m = y = g = p = w =
by the way, the print code can be simplified to:
foreach $key (keys(%griph)) { print("$key = @{$griph{$key}}\n"); }
Data::Dumper is very useful for debugging:
use Data::Dumper; print(Dumper(\%griph));
In reply to Re: Multidimensional hashes
by ikegami
in thread Multidimensional hashes
by emav
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |