This sounds like a symptom of someone writing perl code that knows shell programming better than perl programming. As a perl script, you should be using perl features instead of system features. It will make it more portable and more efficient.
open (my $fh, '<', 'filename') or die $!;
@some_array = grep /regular_rexpression/, <$fh>;
close $fh;
# process results...
This slurp method will load the entire file into memory, so if the files could get large, then you should iterate line-by-line.