in reply to Multidimensional hashes

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));