in reply to file comparisons: - making it faster

Please read perlperf for general advice for tuning your code.

But first you should focus on making your code correct and readable. For example

my $non_ommitted_pattern =~ /(\W+).+/; foreach (@a) {our @match = grep {$_ == $non_ommitted_pattern} @a;

is almost certainly not what you want. $non_ommitted_pattern contains the result of matching $_ against the regex, and == does numeric coparison between the result of that regex match and the current item.

If there is code that doesn't do what you want, and the program as a whole still works correctly, you might even be able to simply remove the non-functional code. So there might be a performance gain in making it correct.

Concerning readability, a consistent indention style would help a lot, as well as using a single variable for a single thing (and not $a, $b, $c ... for the same thing).