If you are indeed using a plain shell call over Net::FTP (as suggested above) you might as well use mput which allows filemasks... something like mput *.txt is ofcourse possible. Net::FTP doesn't appear to have mput (and mget), but you can loop a put statement :
foreach $file (@files) { $ftp->put($file); }
Greetz
Beatnik
... Quidquid perl dictum sit, altum viditur.