Dans mon script principal, je fais de la manipulation d'archives. Une fois que j'ai terminé cela, je veux exécuter un script séparé pour télécharger mes archives et serveur FTP.Une instruction 'do' à la fin de mon script perl ne s'exécute jamais
Séparément, ces scripts fonctionnent bien. Je veux ajouter le script FTP à la fin de mon script d'archivage, donc je n'ai qu'à m'inquiéter de la programmation d'un script à exécuter et je veux garantir que le premier script l'achèvera avant que le script FTP ne soit appelé.
Après avoir regardé toutes les différentes méthodes pour appeler mon script FTP, je me suis arrêté sur 'do', cependant, quand mon instruction do est à la fin du script, elle ne fonctionne jamais. Quand je le place dans ma boucle foreach principale, il fonctionne bien, mais il s'exécute plusieurs fois que je veux éviter car le script FTP peut gérer plusieurs archives à télécharger.
Y a-t-il quelque chose qui me manque? Pourquoi ne fonctionne-t-il pas?
Voici le code relivant:
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";
Merci
j'ai fini de copier et coller le code FTP dans le fichier principal en tant que sous. Cela fonctionne bien quand je l'appelle à la fin de la boucle foreach.
Difficile à déboguer lorsque le code n'est pas visible. Mais je vais deviner que tu as une sortie au dessus de la fin de la boucle. Peut-être que le code est si complexe qu'il n'est pas clair que vous atteignez la fin normalement? – MJB
Non, je n'ai pas de sortie dans le code. En fait, j'ai placé une déclaration d'impression au même endroit et imprimée. – joejoeson
Jeremy - veuillez fournir un échantillon de code (condensé). – DVK