#!/usr/bin/perl use strict; use warnings; my @newAoA; my @AoA = ( [1,1,1],[0,0,0],[1,0,1],[0,0,1] ); my $arrRef = $AoA[0]; my $c = 0; for (my $i = 0; $i < scalar @AoA ; $i++){ for (my $j =$i+1; $j< scalar @AoA ; $j++){ for (my $k=0; $k< scalar @$arrRef; $k++){ ### scalar @$AoA[0] doesn't work, maybe im losing my mind but thats the same as @$arrRef push @{$newAoA[$c]}, ($AoA[$i][$k] + $AoA[$j][$k]); } $c++; } } foreach my $array (@newAoA){ print @$array,"\n"; } foreach my $array (@newAoA){ print @$array,"\n"; }