Als Teil eines größeren Perl-Programms prüfe ich die Ausgaben von diff
Befehle von Eingabedateien in einem Ordner gegen Referenzdateien, wobei eine leere Ausgabe (eine Übereinstimmung) ein positives Ergebnis ist und eine beliebige Ausgabe von diff ein negatives Ergebnis ist.
Das Problem ist, dass die von diff ausgelöste Ausnahme nicht ausgegeben wird, wenn der Zielordner nicht die erwartete Anzahl an Dateien enthält, was zu falschen Durchläufen führt.
Beispiel für die Ausgabe:
diff: /testfolder/Test-02/test-output.2: No such file or directory
Test-01: PASS
Test-02: PASS
Der Code lautet wie folgt:
$command = "(diff call on 2 files)";
my @output = `$command`;
print "Test-02: ";
$toPrint = "PASS";
foreach my $x (@output) {
if ($x =~ /./) {
$toPrint = "FAIL";
}
}
Dies ist eine schnelle Hackerarbeit, die fehlschlägt, wenn es irgendeine Ausgabe von der diff
anrufen. Gibt es eine Möglichkeit, auf Ausnahmen zu prüfen, die von dem im Befehl backticks
?