in reply to append array

Give this a shot:
use Data::Dumper; my @array; # read from the file handle line by line while(<DATA>) { chomp; # split each line by ',' and save # corresponding records into the @recs array my @recs = split /\,/; # loop through the records array.. for (my $i; $i < @recs; $i++) { # and save I-th record in array # array[I]. Use @{..} to let push() know # that array[I] is also an array. push @{$array[$i]}, $recs[$i]; } } print Dumper(\@array); __DATA__ A,B,C D,B,C E,C,C
The ouptut I get is
$VAR1 = [ [ 'A', 'D', 'E' ], [ 'B', 'B', 'C' ], [ 'C', 'C', 'C' ] ];
I believe this is what you were looking for?

_____________________
open(I,$0);<I>;$~=$/;$/='~';$_=<I>;($/)=/(.)$~/;s/[$~~]//g;/(v)/;$-=$-[0];s;\Q$/\E;$~;g;($/,$^)=/^(.)(.)/;
#%  xxxxxx   xx-+  xx    xxx xx  xx       xx  xx   xxx   xxxxx+ xx  xx xxxx xxxxx  ......+
#x xxxxvxxx xx  xx xv   xxxx x+ %+  ===== xx  xx  xx xx  x+  =x xx xx  xx   xx xx ...+
#x xx xx xx xx  xx xx  xx xx xxx+         xxxxxx xx   +x xx     xx+x-  xxxx xxxx ........+
#% xx xx xx xx  xx xx xx  x+ xx xx  =+=== xx  xx xxxx-xx xx  =x +x xx  xx   xx xx ...+
#% xx xx xx  -+x+  xxx+   xx xx  xx       xx  xx x+   xx xxx+xx xx  xx xxxx xx  xx ....+~
for(split/$~/){s,[ $/],,g;/(.)$/;$l=$-[0];/(.)/||next;$_=chr$-+$l;$".=($1=~/$^/)?" \u$_":$_;}print$";