open (HANDLE, "< nTM.txt"); while() { my @motives = ( qr(G[A-Z]{2}G), qr(O[A-Z]{1}O), qr(P[A-Z]{2}G) ); my %gefunden; my $zeilennr; while (my $line = ) { $zeilennr++; for my $re (@motives) { push @{$gefunden{$re}},$zeilennr if $line =~ $re; } } while (my ($k,$v) = each %gefunden) { print "$k: ", join(",",@$v),"\n"; } } Jetzt wollte ich das zur Probe einbauen, aber ich mach mit dem Einlesen der Zeilen wohl einen Fehler...Die Zeilennummer ist stets 1.