in reply to Multidimensional hashes
If the array @c_cgraph is empty, then that part of the list is equivalent to: %griph = ( c, (), b, (), ...
which is equivalent to %griph = ( c, b, ...
hence your results.
You almost certainly want
%griph=('c' => \@c_griph, 'b' => \@b_griph, ...
|
|---|