When using the LIST form of system()
the first argument is the program to run, the rest of the arguments are the parameters for the program. I can almost guarantee you don't have a program called /usr/bin/mailx uuencode $zipfile $zipfile -r -s
on your system. You probably have /usr/bin/mailx
however. The other parts (uuencode $zipfile $zipfile -r -s
) need to be passed as parameters to mailx
my @emailcmd = ('/usr/bin/mailx', 'uuencode', $zipfile, $zipfile, '-r'
my @args = (@emailcmd, $subject, $recipient);
system(@args) == 0
or die "system @args failed: $?";
This is of course assuming that the command /usr/bin/mailx uuencode file.zip file.zip -r -s Subject Recipient indeed works on the command line.