IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Sortie de programme


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 27
    Points
    27
    Par défaut Sortie de programme
    Bonjour,

    J'ai un petit problème avec mon script.
    Quand le fichier soit présent ou pas le test de présence ne s'exécute pas.
    Où est mon erreur

    D'avance merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #
    !/usr/bin/perl
     
    use Net::FTP;
     
     
    $file="Janvier09.zip";
     
        $ftp = Net::FTP->new("172.0.0.1", Debug => 1)
          or die "Cannot connect to 172.0.0.1: $@";
        $ftp->login("toto","titi")
          or die "Cannot login ", $ftp->message;
       $ftp->binary();
       $ftp->cwd("BaseComplete")
          or die "Cannot change working directory ", $ftp->message;
    	  $ftp->get($file)
    	  or die "get failed ", $ftp->message;
        $ftp->quit;
     
    if (-e $file ){
    print OK;
    }
    else {
    print KO;
    }

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Tu devrais utiliser les pragma strict et warnings et encadrer OK et KO de doubles quotes. Il est également conseillé de déclarer ses variables avec my.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/usr/bin/perl
     
    use strict;
    use warnings;
     
    my $file = "Janvier09.zip";
     
    if (-e $file ){
    	print "OK";
    }
    else {
    	print "KO";
    }
    -- Jasmine --

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 27
    Points
    27
    Par défaut
    Quand j'ajoute les doubles quotes cela fonctionne mieux, seulement si le fichier est présent dans le cas contraire je n'ai pas le KO.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dernières lignes du résultat
     
    Net::FTP=GLOB(0x1b59d6c)>>> RETR JanviÚr09.zip
    Net::FTP=GLOB(0x1b59d6c)<<< 550 File not found
    get failed File not found
     
    c:\>

  4. #4
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    or die "get failed ", $ftp->message;
    get failed File not found
    Avec le die, le programme s'arrête avant d'atteindre le if/else.
    -- Jasmine --

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 27
    Points
    27
    Par défaut
    Merci Jasmine

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    die() comme son nom l'indique fait "mourir" le programme, il est utilisé pour indiquer une erreur fatale qui empêche de continuer le programme de façon utile. Si tu as l'intention de gérer le cas où le get() échoue de façon constructive mais que tu veux tout de même prévenir l'utilisateur du problème, utilise la fonction warn(). Par ailleurs écrire un message d'erreur sur la sortie standard (avec un print() par exemple) est mal considéré, puisque cela empêche l'utilisateur de faire un tri correct entre la sortie de ton programme et ses messages d'erreurs, utilise donc warn() (qui écrit sur la sortie d'erreur) plutôt que print() dans ce cas.

    --
    Jedaï

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/01/2008, 00h13
  2. Détecter la sortie du programme
    Par ameno_123 dans le forum Langage
    Réponses: 3
    Dernier message: 07/09/2007, 19h32
  3. Réponses: 1
    Dernier message: 21/07/2007, 22h29
  4. Erreur à la sortie du programme
    Par Sachiel31 dans le forum C++
    Réponses: 19
    Dernier message: 26/07/2006, 09h47
  5. petit problème de sortie de programme
    Par clampin dans le forum C
    Réponses: 2
    Dernier message: 17/06/2006, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo