use strict; use warnings; my ($ordner)="daten_2/"; my ($ausgabe)="result/"; my ($m,$gmd,$name); my $gmd3 = ''; my $gm; my (@files)=(); opendir DIR,$ordner; @files = readdir(DIR); closedir(DIR); -d $ausgabe or mkdir $ausgabe; foreach $m (@files) { next if -d $m; open (my $fh, '<', $ordner.$m) or die "Fehler beim oeffnen von $m\n"; print "verarbeite $m ...\n"; while(<$fh>) { $gmd=substr($_,0,4); if ( $gmd eq 'ENDE') { #Ende Kennung muss zum letzten Block $gmd=$gmd3; } if ( $gmd3 ne $gmd ) { #neue Station... $gmd3=$gmd; my ($file) = /(.+?) \d/; open ($gm,">>", $ausgabe . $file ) or die "Fehler beim oeffnen von $ausgabe.$gmd\n"; } print $gm $_; } close($gm); close($fh); }