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

I wonder, why you want to replace a bash script with a perl script for this job?

If the bash script is doing the job, why do you want to replace it?

Even for learning purposes I don't see much use of doing such things.

Did you try to separate each option in @args?

my @args = ("/bin/tar", "-czv", "--exclude-from=$excludes", "-f", $s +torageLocation.$archiveName, $archiveDir ); system(@args) == 0 or die "system @args failed: $?";

I am still wondering about which "old option 'b'" your tar is complaining... Crackers2's answer helped