http://qs321.pair.com?node_id=1092122

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

i had to write a csv sorting code for which i used the following code :

foreach(@files){ if(/\.csv$/i) { # if the filename has .csv at the end push(@csvfiles,$_); } } foreach(@csvfiles) { $csvfile=$_; open(hanr, "D:\\stock\\".$csvfile)or die"error $!\n"; open(hanw , ">D:\\stock\\sorted".$csvfile) or die"error $! \n"; @lines=(); @lines=<hanr>; foreach $line (@lines){ chomp $line; $count++; next unless $count; # skip header in csv my $row; @$row = split(/,/, $line ); push @$sheet2 , $row; } foreach my $row ( sort { $a->[0] cmp $b->[0] || $a->[1] cmp $b->[1] } @$sheet2 ) { chomp $row; print hanw join (',', @$row ),"\n"; } @$sheet2 = (); $count = -1; close(hanw); close(hanr); }

however i do not understand what @$row is ..also i understand sorting a NORMAL array @sheet2 comparing coulumn 0 and 1 ..but i cannot understand what is the state of @$row and $ row being pushed into @$sheet2; if someone would explain the whole thing it would be wonderful:

@$row = split(/,/, $line ); push @$sheet2 , $row; } foreach my $row ( sort {$a->[0] cmp $b->[0] || $a->[1] cmp $b->[1]} @ +$sheet2 ) { *print hanw join (',', @$row ),"\n"; }