Ich denke, dass die Fehlermeldung weder von Perls 'system' noch von tar kommt, sondern von der bash, die "/my/error/path*" in die Dateinamen veruscht aufzulösen.
Ein "*" ist häufig keine gute Wahl: Bei seeeehr vielen Dateien streikt die bash und was ist mit Dateinamen, die Leerzeichen enthalten etc?
Mein Lösungsvorschlag:
Gebe als zu archivierenden Dateinamen den Verzeichnisnamen an.
Hier wäre es möglicherweise das Ergebnis von getErrorPath().
Wenn ich das richtig gelesen habe, speicherst Du das Archiv im gleichen Verzeichnis wie das zu archivierende Verzeichnis und exkludierst solche Dateinamen aus der Archivierungsliste?
Warum spendierst Du Deinem Archiv oder Deinen Archiven nicht ein eigenes Verzeichnis? Dann sind diese getrennt und es kommt nicht zu Missgeschicken ...
Liefert getErrorPath() eigentlich ein "/" am Ende? Dann meinst Du mit dem angehängten "*" alle nicht versteckten Dateien in diesem Verzeichnis.
Wenn getErrorPath() kein "/" am Ende hat, möchtest Du alle Verzeichnisse archivieren, die mit getErrorPath() beginnen. Das steht dann aber im Gegensatz zu
QuoteIch hatte vor ein Verzeichnis zu zippen
Wenn es wirklich gaaaanz viele Dateien oder Verzeichnisse sind, die Du tar mitgeben möchtest, kannst Du die Dateinamen in eine Datei speichern und es tar mit der Option
--files-from mitteilen.