%data; $data{$_[0]}{$_[1]} = [@{$_}[2,3]] for @$query2; foreach my $row (@$query) { no warnings 'uninitialized'; $$row[2] -= $data{$$row[0]}{$$row[1]}[0]; $$row[3] -= $data{$$row[0]}{$$row[1]}[1]; local $" = ","; print "@$row\n"; }