in reply to Re^3: 5.26 sigil reference syntax in subfunction
in thread 5.26 sigil reference syntax in subfunction
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.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: 5.26 sigil reference syntax in subfunction
by dave_the_m (Monsignor) on Nov 01, 2017 at 23:37 UTC | |
by chenhonkhonk (Acolyte) on Nov 02, 2017 at 11:38 UTC | |
by dave_the_m (Monsignor) on Nov 02, 2017 at 14:01 UTC | |
by chenhonkhonk (Acolyte) on Nov 02, 2017 at 18:50 UTC | |
by dave_the_m (Monsignor) on Nov 02, 2017 at 21:28 UTC |