in reply to How to initialize an array of hash references to hashes using literals

You should read the docs (perlreftut and perlref) to have a better understanding.

That said, it seems like you can get rid of some intermediate variables that add to the clutter. I have reconstructed the first two hash references for @LITERALS. Perhaps this is what you're looking for?

#!/usr/bin/perl use warnings; use strict; use Data::Dumper; my @LITERALS = ( # this is equivalent to \%H00 { "--system" => 'Apache', "--slinks" => [ { "--link" => "/etc/httpd/SSL", "--fold" => "/usr/local/private/QA/apach +e/SSL", }, { "--link" => "/etc/httpd/conf/httpd.conf" +, "--file" => "/usr/local/private/QA/apach +e/conf/httpd.conf", }, { "--link" => "/etc/httpd/conf.d/httpd.con +f", "--file" => "/usr/local/private/QA/apach +e/conf.d/nagios.conf", }, ], }, # this is equivalent to \%H01 { "--system" => 'Logrotate', "--slinks" => [ { "--link" => "/etc/logrotate.d/nagios", "--file" => "/usr/local/private/QA/logro +tate/nagios", }, ], }, ); print <<"EOT"; Example: --file of 2nd --slinks of 1st LITERAL (--system is Apache) is +: $LITERALS[0]->{"--slinks"}->[1]->{"--file"} EOT print Dumper(\@LITERALS); __DATA__ Example: --file of 2nd --slinks of 1st LITERAL (--system is Apache) is +: /usr/local/private/QA/apache/conf/httpd.conf $VAR1 = [ { '--slinks' => [ { '--fold' => '/usr/local/private/QA/apach +e/SSL', '--link' => '/etc/httpd/SSL' }, { '--file' => '/usr/local/private/QA/apach +e/conf/httpd.conf', '--link' => '/etc/httpd/conf/httpd.conf' }, { '--file' => '/usr/local/private/QA/apach +e/conf.d/nagios.conf', '--link' => '/etc/httpd/conf.d/httpd.con +f' } ], '--system' => 'Apache' }, { '--slinks' => [ { '--file' => '/usr/local/private/QA/logro +tate/nagios', '--link' => '/etc/logrotate.d/nagios' } ], '--system' => 'Logrotate' } ];

Replies are listed 'Best First'.
Re^2: How to initialize an array of hash references to hashes using literals
by jpietras (Initiate) on Feb 02, 2009 at 13:55 UTC

    Thanks very much! I was able to easily implement the structure you provided and it worked without change to my subroutines. I will look at perlreftut and again at perlref. I did do a lot of RTFM but and googleing but, with the many contradictions in the examples, I was getting now where fast.