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 :

utilisation d"une variable en tant que motif de


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut [résolu]utilisation d"une variable en tant que motif de
    bonjour à tous

    je cherche à utiliser une variable comme motif de recherche dans un fichier afin de vérifier si le contenu de la variable est déja présent dans mon fichier le problème c'est que si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_ =~ /$variable/) {bloc;}
    l'interpréteur va me chercher le motif "$variable" alors que je souhaite qu'il me cherche le contenu...
    quel est la bonne syntaxe ?
    merci

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut Re: utilisation d"une variable en tant que motif de rec
    Bonjour,

    Citation Envoyé par bilout
    je cherche à utiliser une variable comme motif de recherche dans un fichier afin de vérifier si le contenu de la variable est déja présent dans mon fichier le problème c'est que si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_ =~ /$variable/) {bloc;}
    l'interpréteur va me chercher le motif "$variable"
    Pas du tout !

    Citation Envoyé par bilout
    alors que je souhaite qu'il me cherche le contenu...
    Au contraire !

    La preuve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     perl -e '$ch="abcdefgh";$var="cd";if ($ch =~ /$var/) { print "trouve\n";}'
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    open (FR,'test.conf.save') || die "Pb d'ouverture de \'test\.conf\.save\' : $!";
    open (FW,'>>test.conf') || die "Pb d'ouverture de \'test\.conf\' : $! " ;
     
    while (<FR>) {
            print FW $_;
            if ($_ !~ /$class/) {
                    if ($_ =~ /#class definition/) {
                            print FW "class \"".$class."\" \{\n\tmatch if \(suffix \(option agent\.circuit-id, 1\) = ".$portHexa."\) and \(suffix \(option agent\.remote-id,6\) = ".$mac."\) and \(substring \(option agent\.circuit-id,2, 2\) = ".$vlanPad."\)\;\n\}\n";
                    }
            }
    }
     
    close (FR);
    close (FW);
    je souhaite que le "print FW" dans le 2ième "if" ne s'effecute que si le contenu de la variable $class passé en paramètre au lancement du script n'est pas déja présent dans le fichier FR que je recopie au fur et à mesure dans FW

    or avec cette syntaxe le print s'effectue à chaque fois, ce que je ne veux pas !
    je me mélange probablement dans ma syntaxe...je suis novice en perl
    j'espère être assez clair dans mes propos...

  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
    Le but de tes if est de tester puis de rajouter des lignes, et pas de ne mettre QUE ces lignes, n'est ce pas ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    oui en fait je réécris un fichier dans un autre en y ajoutant des lignes si elles n'existent pas déjà

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

Discussions similaires

  1. passer une variable en tant que text dans une fonction
    Par Barokar dans le forum Langage
    Réponses: 6
    Dernier message: 18/06/2014, 15h23
  2. Réponses: 6
    Dernier message: 28/05/2014, 14h16
  3. Réponses: 1
    Dernier message: 23/07/2009, 21h14
  4. [FTP] Définir une variable en tant que constante
    Par Anduriel dans le forum Langage
    Réponses: 2
    Dernier message: 15/01/2006, 11h39

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