Talvez eu tenha perdido um ponto, mas se o seu pedido original é basicamente o mesmo com isto:
grep -l "mytext" *
Então seu perl
equivalente poderia ser escrito como:
perl -ne 'if(/mytext/){print"$ARGV\n";close ARGV}' *
Observação para os leitores: o código a seguir é atualizado de acordo com os comentários do proprietário, não totalmente compatível com a pergunta original.
#!/usr/bin/perl
@list_code=qw{ over 100 elements here };
@original=@ARGV;
foreach $ele (@list_code) {
@ARGV=@original;
@found=();
while (<>) {
if (/\Q$ele\E/) {
push @found,$ARGV;
close ARGV;
}
}
print "$ele found in ",scalar @found," files : \n",join "\n",@found,'';
}