#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; use PDL; sub load { my ($filename) = @_; open my $FH, '<', $filename or die $!; return pdl(join "\n", map { chomp; "[$_]" } <$FH>) } my @matrices = map load($_), @ARGV; my $result = $matrices[0]; $result += $_ for @matrices[ 1 .. $#matrices ]; $result /= @ARGV; say $result;