Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de gestion du Timeout dans le module Net:FTP

1 réponse
Avatar
Steve Houle
Salut.

J'ai un script qui doit me lister le contenu d'un serveur FTP via une ligne
ISDN. Malheureusement, j'ai des problèmes de Timeout avec la commande
$ftp->dir.

En fait, j'exécute le script (qui est relativement long car c'est une ligne
de 64kbps), j'ai une erreur :
Timeout at /usr/lib/perl5/5.8.0/Net/FTP.pm line 988
et le script s'arrete là.

Je me suis mis des markeurs un peu partout pour voir sur quel fonction il
bloque. Il semble que ce soit la commande $ftp->dir.

Voici la portion du script qui ne fonctionne pas.

print "Markeur SUB-LST-34\n";
my @sub_lst_ftplist = $ftp->dir or print "cannot list $sub_lst_subdir\n" ;

J'ai tenté de mettre le timeout plus long, mais c'est la même chose.

Je veux bien que la commande "plante", mais au moins, je veux que mon script
continue.

Alors, comment je fais ?

Steve

1 réponse

Avatar
jl_morel
Dans l'article <bkfm80$dde$, a
dit...

J'ai un script qui doit me lister le contenu d'un serveur FTP via une ligne
ISDN. Malheureusement, j'ai des problèmes de Timeout avec la commande
$ftp->dir.

En fait, j'exécute le script (qui est relativement long car c'est une ligne
de 64kbps), j'ai une erreur :
Timeout at /usr/lib/perl5/5.8.0/Net/FTP.pm line 988
et le script s'arrete là.

Je me suis mis des markeurs un peu partout pour voir sur quel fonction il
bloque. Il semble que ce soit la commande $ftp->dir.

Voici la portion du script qui ne fonctionne pas.

print "Markeur SUB-LST-34n";
my @sub_lst_ftplist = $ftp->dir or print "cannot list $sub_lst_subdirn" ;

J'ai tenté de mettre le timeout plus long, mais c'est la même chose.

Je veux bien que la commande "plante", mais au moins, je veux que mon script
continue.

Alors, comment je fais ?



Vous pouvez évaluer votre fonction dans un bloc avec eval.
Si ça marche la variable $@ est vide, sinon elle contient le message
d'erreur.

my @sub_lst_ftplist;
eval { @sub_lst_ftplist = $ftp->dir };
warn $@ if $@;

Voir eval BLOC dans perlfunc :
http://www.bribes.org/perl/docfr/perlfunc.html#L3A91ED9E

HTH

--
J-L.M.