in reply to Re: Accessing 2 multidimensional arrays simultaneously
in thread Accessing 2 multidimensional arrays simultaneously

Thanks on your suggestion for dropping the join line to make it truly multidimensional. I am sorry that my question wasn't clear before. I want to display row 1 of the 1st array and then row 1 of the 2nd array. Like this: 'a','b','c','j','k','l'
  • Comment on Re^2: Accessing 2 multidimensional arrays simultaneously

Replies are listed 'Best First'.
Re^3: Accessing 2 multidimensional arrays simultaneously
by poj (Abbot) on May 04, 2016 at 18:47 UTC
    #!perl use strict; my @array1 = ( ['a','b','c'], ['d','e','f','g'], ['h','i'] ); my @array2 = ( [1,2,3], [4,5,6,7,8], [9,10] ); my $i = 0; foreach my $ar1 (@array1) { my $ar2 = $array2[$i++]; print join ',', @$ar1,@$ar2; print "\n"; }
    poj
Re^3: Accessing 2 multidimensional arrays simultaneously
by haukex (Archbishop) on May 04, 2016 at 21:44 UTC

    Hi Ppeoc,

    I see what you mean. If it's always the first row, it's fairly simple: print join(",", @{$a1[0]}, @{$a2[0]}), "\n"; - for an explanation of the dereferencing syntax see perlreftut and maybe perldsc. If you want to do this to all the rows, assuming both arrays have the same number of rows, just add a loop:

    my @a1 = ( ['a','b','c'], ['d','e','f'], ['g','h','i'] ); my @a2 = ( ['j','k','l'], ['m','n','o','p'], ['q','r'] ); for my $r (0..$#a1) { print join(",", @{$a1[$r]}, @{$a2[$r]}), "\n"; } __END__ a,b,c,j,k,l d,e,f,m,n,o,p g,h,i,q,r

    And if you want single quotes around the values: print join(",", map {"'$_'"} @{$a1[0]}, @{$a2[0]}), "\n";

    Hope this helps,
    -- Hauke D