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 :

Variable %toto% perl


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut Variable %toto% perl
    Bonjour,

    J'ai une application qui génére des variables.

    A travers fichier bat, j'arrive à récuperer la variable toto

    par la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo %toto% >> log.txt
    Par contre en perl, j'aimerai récupérer ces memes variables, mais sans succés.

    Merci pour votre aide

  2. #2
    Expert confirmé
    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
    Par défaut
    J'ai l'impression que tu parles de variable d'environnement ?
    Dans ce cas elles sont accessibles en Perl par l'intermédiaire du hash %ENV, par exemple :
    --
    Jedaï

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    En fait, j'ai une application, qui lance un fichier bat, dans lequel je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo %x_appli% >> log.txt
    echo %_trans% >> log.txt
    Mon fichier log.txt vient se générer avec les bonnes variables.

    En revanche mon application permet aussi de lancer un script perl, mais via mon script perl, je n'arrive pas à recupere ces variables.

    $ENV{user_name} permet de récuperer les variables charger dans l'environnement de windows, equivaut la commande Set sous windows.
    Mais pour mon cas, ce n'est pas une variable windows.

    merci de m'aider si vous avez une piste

  4. #4
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    Est-ce que ce ne seraient pas des variables définies dans ton .bat ? Si c'est le cas, il te suffit de les passer en paramètre à ton script Perl...

  5. #5
    Expert confirmé
    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
    Par défaut
    %x_appli% est la variable windows x_appli...

    --
    Jedaï

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    dans mon fichier bat,

    supposons que je saisisse echo %appli% >> log.txt

    dans mon fichier log.txt, je me retrouve avec la valeur de ma variable, donc celle ci est bien chagé en amont.

    par contre, si je fais la meme chose en perl directement, je n'obtiens rien.

    par contre si dans mon fichier bat, j'appelle mon perl avec des arguments en paramétres, cela fonctionne.(voir ci-dessous)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @echo off
    C:\DIVERS\script1.pl %x_appli%
    et mon script perl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my $NomFicCsv=$ARGV[0];
    print $NomFicCsv ;
    dans ce cas, je récupére bien ma valeur, mais je suis obligé de passer par un fichier bat.

  7. #7
    Expert confirmé
    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
    Par défaut
    Tu n'as pas l'air de comprendre que Perl a accès aux variables de son environnement... Si tu lances un script Perl dans l'environnement où %appli% a une valeur, tu y as accès par $ENV{appli}, si ça ne te donne rien, c'est qu'un script .bat au même endroit ne donnerait rien non plus.
    Si tu nous disais d'où vient la valeur de %appli% et ce que tu essaies de faire, on pourrait peut-être te dire où tu as fait erreur.

    --
    Jedaï

Discussions similaires

  1. Différence entre une variable $toto et ${toto}
    Par nono27200 dans le forum Shell et commandes POSIX
    Réponses: 2
    Dernier message: 12/12/2008, 09h01
  2. Tester l'existence d'une variable en perl
    Par chjerome dans le forum Langage
    Réponses: 6
    Dernier message: 11/04/2008, 09h09
  3. editer variable globale (perl->shell)
    Par Matmal11 dans le forum Langage
    Réponses: 2
    Dernier message: 10/05/2007, 11h15
  4. transmettre des variables de perl à php
    Par fafa16 dans le forum Web
    Réponses: 3
    Dernier message: 22/03/2006, 12h19
  5. Comment Caster une variable en perl?
    Par kiza dans le forum Langage
    Réponses: 8
    Dernier message: 21/10/2005, 12h33

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