in reply to Dereference Hash of Hash - print
Hello demichi,
I agree with LanX, readability is the key here. Consider the following, which all print MyTextWilmaishere.:
#! perl use strict; use warnings; my $ref_HoH = { Fred => { wife => 'Wilma', daughter => 'Pebbles', }, Barney => { wife => 'Betty', son => 'Bamm-Bamm', }, }; my $var = 'Fred'; my $key = 'wife'; print "MyText$ref_HoH->{$var}{$key}ishere.\n"; # interpol +ated print "MyText$$ref_HoH{$var}{$key}ishere.\n"; # interpol +ated print "MyText" . $ref_HoH->{$var}{$key} . "ishere.\n"; # concaten +ated print "MyText" . $$ref_HoH{$var}{$key} . "ishere.\n"; # concaten +ated printf "MyText%sishere.\n", $ref_HoH->{$var}{$key}; # template +d printf "MyText%sishere.\n", $$ref_HoH{$var}{$key}; # template +d
My preference is for printf, which presents the complete structure of the output up-front, in the format string; but concatenation is always a valid option; and either option is clearer, and therefore more maintainable, than the equivalent interpolation.
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
|
|---|