while ($line = <$INPUT>) { if ($line =~ /.CBT/gsm) { $cbt = 1; } elsif ($line =~ /BARCODE/gsm) { $barcode = 1; } elsif ($line =~ /AATHD000000/gsm) { $falscheangabe = 0; } elsif (!$starttest && $line =~ /(\d\d)\.(\d\d)\.\d\d(\d\d)\s+(\d\d):(\d\d):(\d\d)/) { $date = "$3$2$1"; $starttest = "$3$2$1$4$5$6"; } elsif (!$endetest && $line =~ /(\d\d):(\d\d):(\d\d)\s+(?: P\sA\sS\sS|F\sA\sI\sL)/x) { $endetest = "$date$1$2$3"; } elsif (!$sachnummer && $line =~ /Sachnummer:\s(\w+)\./) { $sachnummer = $1; } elsif (!$kundennummer && $line =~ /Kundennummer:\s*(\d+)/) { $kundennummer = $1; } elsif (!$seriennummer && $line =~ /Flexnummer:\s(\d\d).(\d\d\d\d).(\d\d\d\d)/sm) { $seriennummer = "$1$2$3"; } elsif ($line =~ /PASS/) { $start_pos = tell($INPUT); } elsif ($line =~ /FAIL/) { $end_pos = tell($INPUT); } } if ( $end_pos) { $status = '01'; $result = 'Failed'; seek($INPUT, $start_pos, 0); $hit; while ($line = <$INPUT>) { chomp($line); last if $end_pos <= tell($INPUT); if ($line =~ /^\z/) { $hit = 1; } if ($hit) { push @fehler, $line; } } $fehler = join(' ', @fehler); $fehler =~ s/\s+/ /g; } else { $status = '00'; $result = 'Passed'; } close $INPUT; if (($cbt != 1) || ($barcode != 1)) { unlink ($quelle); } else { open (OUTPUT,">$ziel.txt") or die "konnte $ziel nicht oeffnen,$!\n"; print OUTPUT "{\@BATCH|$sachnummer||GOEPEL_BSCAN||KDSNR:$kundennummer|ICT||PB/PL_P|uqm161|||\n"; print OUTPUT "{\@BTEST|$seriennummer|$status|$starttest|||||n|n|$endetest||1|\n"; print OUTPUT "{\@RPT|$result}\n"; print OUTPUT "{\@RPT|$fehler}\n" if $fehler; close OUTPUT; }