use Net::FTP; `/usr/bin/zip -r zipfile.zip /directory/to/zip/`; #-r means recurse my $ftp = Net::FTP->new("some.host.name", Debug => 0); $ftp->login("anonymous",'me@here.there'); $ftp->cwd("/incoming"); $ftp->put("zipfile.zip"); $ftp->quit;