#! perl use warnings; use strict; open my $inFH, '<', 'meineEingabedatei' or die "$!"; open my $outFH, '>', 'meineAusgabedatei' or die "$!"; while (! eof($inFH)) { my ($variable_1, $variable_2); # Erste Zeile my $hansLine = <$inFH>; last if eof($inFH) or $hansLine !~ /\A HANS (\d{4}) (\d+) /x; if ($1 eq '9999') { $variable_1 = substr($2, 0, 3); } elsif ($1 eq '8888') { $variable_1 = substr($2, 0, 4); } elsif ($1 eq '7777') { $variable_1 = "FEHLER"; } last if ! defined $variable_1; # Zweite Zeile my $dampfLine = <$inFH>; last if eof($inFH) or $dampfLine !~ /\A DAMPF0000 (\d+) /x; $variable_2 = $1; # Dritte Zeile (nicht verwendet) my $gasseLine = <$inFH>; if ($variable_1 eq 'FEHLER') { print $outFH "Fehler, bitte manuell prüfen.\n"; } else { print $outFH "ZUSATZ_FORMAT_A $variable_1 " ."ZUSATZ_FORMAT_B $variable_2 " ."ZUSATZ_FORMAT_C\n"; } } close $inFH; close $outFH;