Think about Loose Coupling | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
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.In reply to Re^4: 5.26 sigil reference syntax in subfunction
by chenhonkhonk
|
|