my $result; for my $r (0 .. @{$mats->[0]} - 1) { for my $c (0 .. @{$mats->[0][0]} - 1) { $result->[$r][$c] = f( map $_->[$r][$c], @$mats ); } }