В моем основном скрипте я проделываю некоторые манипуляции с архивом. Как только я это закончу, я хочу запустить отдельный скрипт для загрузки моих архивов на 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.