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 :

afféctation d'une chaine


Sujet :

Langage Perl

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Points : 118
    Points
    118
    Par défaut afféctation d'une chaine
    Bonjour à tous,
    Je suis un grand débutant dans le domaine du PERL et j'ai beaucoup de mal a régler un tout petit problème, voici mon code (version simplifié):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    my $var1="inconu";
    sub maMethode {
            my $var2="test";
            if($var2 ne ""){
                  $var1=$var2;
                  print("affectation de la variable  -$var1-\n");
            }
            print "-$var1-\n";
     
    }
    voila ce que j'obtient à l'écran:
    affectation de la variable --
    -inconu-

    je ne comprend pas pourquoi je n'ai pas :
    affectation de la variable -test-
    -test-
    ?
    quelqu'un a une idée? si vous pouvez m'aider merci d'avance.

  2. #2
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Salut !

    Ce code la (tel quel) ne te renvoie pas test ?
    Tu pourrais mettre la version complète stp ?

    @+
    Mr6

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Points : 118
    Points
    118
    Par défaut
    en fait c'est assez incompréhensible: je fait pareil pour plein de paramêtre à récupérer et sa marche pour tout, j'ai même rajouté un affichage avant pour vérifier le contenu de $var2 et sa marche, je récupére en faite var2 dans un tableau au milieu de plein d'autre variable qui marche toute très bien. ce que je ne comprend pas c'est l'incohérence algorithmique:
    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
     
     
    my $var1="inconu";
    sub maMethode {
            my $var2="test";
            print "-$var1-\n";//là il affiche bien test
            if($var1 eq "inconu" $var2 ne "" and $var2 ne" "){ 
            //le test sur var 1  sert car on passe plusieur fois dans le programmes
            // on est dans le SI donc var2 est différent de " " et var1= inconnu
     
                  $var1=$var2;//ici var1 ne devrait pas être vide
                  print("affectation de la variable  -$var1-\n");
            }
            print "-$var1-\n";//pourtant ici il m'affiche du vide
     
    }

  4. #4
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    La version complète incluait la façon d'appeler la fonction, les éventuelles déclarations de variables en amont, s'il y a un use strict, etc...
    Car là par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $var2="test";
            print "-$var1-\n";//là il affiche bien test
    On ne teste pas $var2 mais $var1, et il ne peut donc pas afficher test puisque $var1="inconnu". Si on a test affiché ici cela veut dire qu'en amont il y a déjà eu un remplacement de $var1...

    @+
    Mr6

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Et là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($var1 eq "inconu" $var2 ne "" and $var2 ne" "){
    Il y a carrément une erreur de syntaxe

    A tout hasard, tu n'aurais pas écrit $varl (var suivi de la lettre "l") au lieu de $var1 (var suivi du chiffre "1") ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $varl != $var1; # var suivi de lettre L en minuscule et var suivi du chiffre 1
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

Discussions similaires

  1. langage] Découper une chaine suivant un délimiteur
    Par totox17 dans le forum Langage
    Réponses: 2
    Dernier message: 25/11/2002, 16h25
  2. Réponses: 23
    Dernier message: 16/11/2002, 19h41
  3. Réponses: 2
    Dernier message: 10/07/2002, 11h51
  4. [TP]lire une ligne de l'ecran et la stocker dans une chaine
    Par Bleuarff dans le forum Turbo Pascal
    Réponses: 26
    Dernier message: 02/07/2002, 10h08
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

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