В моем основном скрипте я делаю некоторые манипуляции с архивом. После этого я хочу запустить отдельный скрипт для загрузки моих архивов на FTP-сервер.
Отдельно эти скрипты работают хорошо. Я хочу добавить сценарий FTP в конец моего сценария архивирования, поэтому мне нужно беспокоиться только о планировании запуска одного сценария, и я хочу гарантировать, что первый сценарий завершит его работу до вызова сценария FTP.
Изучив все различные методы для вызова моего сценария FTP, я остановился на 'do', однако, когда мое утверждение do находится в конце сценария, оно никогда не запускается. Когда я помещаю его в мой основной цикл foreach, он работает нормально, но работает несколько раз, чего я хочу избежать, поскольку сценарий FTP может обрабатывать несколько архивов для загрузки.
Что-то мне не хватает? Почему не работает?
Вот соответствующий код:
chdir $input_dir;
@folder_list = <*>;
foreach $file (@folder_list)
{
if($file =~ m/.*zip/)
{
print "found $file\n";
print "Processing Files...\n";
mkdir 'BuildDir';
$new_archive = Archive::Zip->new();
$archive_name = $file;
$zip = Archive::Zip->new($file);
$zip->extractTree('', $build_dir);
&Process_Files;
}
}
do 'ArchiveToFTPServer.pl';
print "sending files to FTP server";
Спасибо
Я закончил копированием и вставкой кода FTP в основной файл как подпрограмму. Он отлично работает, когда я вызываю его в конце цикла foreach.