http://www.perlmonks.org?node_id=906770

k_manimuthu has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks,

I have a two ini files, I need to read the INI1 certain values and place the values INI2. I am troubling to access the nested array elements. Please suggest how to access the elements in below nested array.

Thanks,
Mani Muthu

my @myfiles = ( ['INI_1','INI_2', ['VALUE_1'], ['VALUE_2'], ['VALUE_3'] ], ['INI_3','INI_4', ['VALUE_1'], ['VALUE_2'], ['VALUE_3'] ] ); foreach my $ini (@myfiles) { print "\n", $ini->[0]; ## Access Next level values print "\n", $ini->[1]; ## place the $ini->[0] values to $ini->[1] }

Replies are listed 'Best First'.
Re: Access elements in the nested array
by Nikhil Jain (Monk) on May 26, 2011 at 09:09 UTC

    It would be nice if you use modules like Config::Tiny , Config::IniFiles , Config::INI::Reader for reading ini files.

    I am troubling to access the nested array elements,

    try something like,

    use strict; use warnings; my @myfiles = ( ['INI_1','INI_2', ['VALUE_1'], ['VALUE_2'], ['VALUE_3'] ], ['INI_3','INI_4', ['VALUE_1'], ['VALUE_2'], ['VALUE_3'] ] ); foreach my $ini (@myfiles) { foreach my $nested_level (@{$ini}){ if(ref($nested_level) eq 'ARRAY'){ my @values = @{$nested_level}; print"@values\n"; }else{ print"$nested_level\n"; } } }
    Output: INI_1 INI_2 VALUE_1 VALUE_2 VALUE_3 INI_3 INI_4 VALUE_1 VALUE_2 VALUE_3
Re: Access elements in the nested array
by choroba (Cardinal) on May 26, 2011 at 09:03 UTC
    Try $ini->[2][0], $ini->[3][0] etc.