http://www.perlmonks.org?node_id=757286


in reply to Error using system() and tar with several options

When using the multi-argument form of system, the arguments get passed directly to the binary so there's no implicit split on whitespace. So your tar command sees the "czv --exclude-from=$excludes -f" as one big parameter and tries to interpret each character as a short option.

Do this instead:

my @args = ("/bin/tar", "czv", "--exclude-from=$excludes", "-f", $st +orageLocation.$archiveName, $archiveDir );