I didn't understand your reply at all. I showed a line of code that was almost identical to the line you were having problems with, but which exhibited the behaviour you appear to have wanted (dumping the second-level keys of multidimensional hash). If this is insufficient, you'll have to describe in much more detail what it is you're trying to achieve.
Dave. | [reply] |
It's multidimensional in variables.
An example line is:
$$columhash{'config'}{"config_names[$i]"}{'rowstates'}{$j} = substr($$options_lines[$j], $horizontal_offset + $i * 2, 1);
If I want to immediately print the value, I can do:
print $$columhash{'config'}{"config_names[$i]"}{'rowstates'}{$j};
or
print $$columhash{'config'}->{"config_names[$i]"}->{'rowstates'}{$j};
For the foreach (still in the function), if I want what the config_names$ were, I can do:
foreach $key (sort keys $columnhash->('config')->%* )
or
foreach $key (sort keys %{ $columnhash->('config') } )
or even
foreach $key (sort keys %{ $$columnhash{'config'} } )
but not
foreach $key (sort keys %$columnhash->('config')
and more annoyingly, when I call the function with:
assign_columns_to_file( \@options_lines, $files{'options'}{'columns'} );
It will keep 'options' as a subkey, but will not keep 'columns' used during the function (presumably because of passing an undef)
So I figure to see if explicitly referencing it will work, but I can't use ->\%, I can only use \%{ } i.e.:
assign_columns_to_file( \@options_lines, \%{ $files{'options'}{'columns'} } );
Ultimately I end up having to use the surrounding referencing. I'm splitting things more into one-off functions, but I'll still end up with foreachs and \%{} running around everywhere.
| [reply] [d/l] [select] |
| [reply] [d/l] |
Sorry for the duplicate post, I didn't notice the minimizing.
| [reply] |