Hallo,
ich sammele in einem Perlprogramm eine Liste von Dateien zusammen aus denen ein Tar-Paket erzeugt werden soll. Diese werden an das tar-Programm per xargs übergeben. Ich könnte natürlich die Dateien auch erst in eine Datei schreiben und mit "tar ... -T file" arbeiten, aber irgendwie muss es doch auch möglich sein den Fehler beim "open" zu erkennen.
Folgender Code:
if ( open(TAR, "| xargs -0 tar czf $patchFile") )
{
foreach my $file ( @filelist )
{
print TAR "$file\0";
}
} else
{
# Fehlerbehandlung
print "Hat nicht funktioniert\n";
}
close(TAR);
print "Alles ok\n";
Folgendes Problem:
Kann z.B. die Zieldatei nicht angelegt werden sehe ich zwar eine entsprechende Meldung auf STDERR, die "# Fehlerbehandlung" wird aber nie durchlaufen und stattdessen wird "Alles ok" angezeigt.
Wie kann man bei "open" den Fehler abfangen?
Crian: Code-Tags\n\n
<!--EDIT|Crian|1133779220-->