use Net::FTP; my $local_dir = "/home/best1"; my $remote_dir = "/incoming"; my $ftp_site = "ftp.bmc.com"; my $mail_text = "nonew_mail.file"; my $caseid = ""; my $tarbundle = ""; # Find all the caseid tar bundles opendir(HOMEDIR, "$local_dir"); foreach my $file (readdir HOMEDIR) { next if($file eq ".") or ($file eq ".."); if($file =~ /case\d+\.tar\.gz/) { $tarbundle = $file; if($tarbundle =~ /(\d+)/) { $caseid = $1; &ftp; unlink("$local_dir/$tarbundle"); } } } # subroutine for FTP processing sub ftp { $ftp = Net::FTP->new("$ftp_site", Debug => 1) or die "Cannot connect to $ftp_site: $@"; $ftp->login("anonymous",'-anonymous@') or die "Cannot login ", $ftp->message; $ftp->cwd("$remote_dir") or die "Cannot change working directory ", $ftp->message; $ftp->mkdir("$caseid") or die "Cannot create directory ", $ftp->message; $ftp->binary; $ftp->put("$local_dir/$tarbundle") or die "get failed ", $ftp->message; $ftp->quit; }