Не совсем уверен, что это правильная интерпретация вашего скрипта, так как там, похоже, много мертвого / неиспользуемого кода, но, безусловно, нет необходимости запускать вставку или awk для этого:
#!/usr/bin/perl
use warnings;
use strict;
use File::Basename;
my @files = glob ("result/*-*.txt");
foreach my $file (@files) {
open (FILE, $file) or die "open $file: $!\n";
# You seem to be summing the 2nd and 3rd columns if the 4th is "M"
my ($col1, $col2) = (0, 0);
while (<FILE>) {
my @cols = split /\s+/;
if ($cols[3] eq "M") {
# Perl uses 0-based arrays, unlike awk
$col1 += $cols[1];
$col2 += $cols[2];
}
}
close FILE;
printf "%s %d\n", basename ($file), $col1;
}