You should use
use strict and
use warnings
I would suggest, that you make one regex, which includes all elements of @Filter... So you just have to test one time instead of many iterations...
#!/usr/bin/perl
use strict;
use warnings;
my $infile = @ARGV[0];
my $outfile = "OK.txt";
my @Filter = ('01005;01000','01005;01001','01005;01002','01005;01003')
+;
my $zaehler = 0;
open(INFILE, "< $infile") or die "\nDatei $infile konnte nicht geoeffn
+et werden\n";
open(OUTFILE, "> $outfile") or die "\nDatei $outfile konnte nicht geoe
+ffnet werden\n";
my $filterregex = join('|',@Filter);
while (<INFILE>) {
if(/$filterregex/){
print OUTFILE $_;
$zaehler++;
}
}
close(INFILE);
close(OUTFILE);