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 environnement / globale


Sujet :

Langage Perl

  1. #1
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut Variable environnement / globale
    Bonjour,

    Voila c'est plus un conseil de conception que de programmation que je cherche...
    En fait, je suis en train de develloper des application de type CGI perl. Mon probleme c'est qu'elles sont actuellement sur mon poste. Donc, les chemins sont pour la plupart absolue (lors des communication d'un cgi à une page html) et concernent l'architecture de mon poste. J'aimerai bien que mes applications soient le plus portables possible...

    Donc pour cela je souhaiterai disposer de variables globales ou d'environnement...mais cela est t'il possible...pouvez vous me conseillez une doc...

    Merci

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Il est tout à fait possible (et facile) d'utiliser les variables d'environnement dans Perl, c'est très pratique !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    use Env;
    Env::import;
    Ensuite, les variables sont accessibles directement dans le code, par exemple $PATH

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print("chemin d'accès : $PATH \n");
    ou via la hashmap %ENV (si tu veux être sûr que la variable à laquelle tu accèdes est bien celle de l'environnement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my $variable = $ENV{'JDK_HOME'};

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  3. #3
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut
    Merci beaucoup

  4. #4
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut
    Juste une question...cela fait a peu pres 5 mois que je cherche comment changer..ou créer une variable d'environnement sous MACOSX...et helas je n'ai rien trouvé...
    Si quelqu'un sait, cela serait cool...

    Merci

    PS: Je sais que cela ne rentre pas dans le cadre du forum Perl...mais je n'ai trouvé aucun forum en rapport avec les OS...desolé

  5. #5
    Membre actif Avatar de Gamdwin
    Inscrit en
    Avril 2005
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 186
    Points : 207
    Points
    207
    Par défaut
    Le problème vient peut-être du fait qu'une variable d'environnement ajoutée n'est disponible que pour le processus courant et les processus fils (donc valable pour ton script PERL en cours, et éventuellement les scripts/commandes que tu appelles) ?

    En d'autres termes, si je fais ceci sous unix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    use strict;
     
    system("export variable='bidule'");
    Ca créera un sous-shell sh qui aura la variable "variable" de définie. Puis, une fois sa tache accomplie, le sous-shell meurt d'une belle mort, et la variable "variable" l'accompagne dans la tombe.

    Cela repond-il à ta question ?
    "I hate quotations. Tell me what you know." (Ralph Waldo Emerson)

  6. #6
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut
    non, je ne pense pas...
    En fait ce que j'aimerai savoir c'est l'equivalent sous MAC de:
    - la commande setenv
    - ou du fichier .bashrc

    afin de pouvoir definir de nouvelles variables d'environnement...

    Voila, j'espere que je suis un peu plus clair...

  7. #7
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut
    Bonjour,
    j'ai un probleme, je viens de créer une variable d'environnement et je n'arrive pas à acceder à celle ci...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print("chemin d'accès : $NOUVELLEVARIABLE \n");
    Faut-il faire quelque pour pouvoir la charger???

    Merci...

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Ajouter les lignes suivantes au début de ton programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    use Env;
    Env::import;

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  9. #9
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut
    lol,
    c'etait fait... j'ai fait un test sur le $PATH et j'arrive bien à récuperer cette variable...

    Par contre sur ma nouvelle variable que j'ai definie, cela ne fonctionne pas.
    Par contre dans un terminal, la commande echo $NOUVELLEVARIABLE marche correctement (dans n'importe quel terminal...)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Comment as-tu déclaré cette variable ?

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  11. #11
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut
    dans le fichier etc/profile
    j'ai rajouté la ligne

    export NOUVELLEVARIABLE="$NOUVELLEVARIABLE /Users/administrateur/Sites/"
    Volà...

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Peut-être que lorsque tu executes ton script, il n'est pas impacté par /etc/profile.

    Sinon, dans le /etc/profile, à quoi te sert de recopier le contenu de la variable si c'est sa 1° déclaration au fait ? Si elle n'existe pas avant, ca ne fait que rajouter un espace pour rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    export NOUVELLEVARIABLE="/Users/administrateur/Sites/"

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  13. #13
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut
    Citation Envoyé par MarneusCalgarXP
    Peut-être que lorsque tu executes ton script, il n'est pas impacté par /etc/profile.
    Mais comment faire pour qu'il soit impacté...

    Citation Envoyé par MarneusCalgarXP
    Sinon, dans le /etc/profile, à quoi te sert de recopier le contenu de la variable si c'est sa 1° déclaration au fait ? Si elle n'existe pas avant, ca ne fait que rajouter un espace pour rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    export NOUVELLEVARIABLE="/Users/administrateur/Sites/"
    Merci, lol j'avoue je fais souvens du copier/coller/arranger sans vraiment comprendre...

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Citation Envoyé par crochepatte
    Mais comment faire pour qu'il soit impacté...
    Hmm, bonne question, je n'en ai pas la moindre idée Il faudrait essayer depuis le perl d'executer le /etc/profile dans le même environnement de variables, mais je ne sais pas si c'est possible... un truc du genre

    Ou alors, plus simple, au lieu de déclarer les variables dans /etc/profile, te creer un fichier de propriétés avec une série

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    VARIABLE1=valeur1
    VARIABLE2=valeur2
    ...
    et lire ce fichier depuis ton programme Perl, par exemple en écrivant un module que tu pourrais inclure pour chaque script !

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  15. #15
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut
    OK merci, je vais suivre ton conseil et passer par la création d'un fichier de configuration.

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

Discussions similaires

  1. Variable d'environnement global sous linux
    Par eleon_ dans le forum Linux
    Réponses: 6
    Dernier message: 07/10/2007, 14h59
  2. Réponses: 4
    Dernier message: 20/06/2005, 15h04
  3. [D6] Modifier variable environnement système !?
    Par Lung dans le forum API, COM et SDKs
    Réponses: 32
    Dernier message: 19/05/2005, 19h43
  4. [.NET] [C#] Variable super global ?
    Par choas dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/04/2005, 15h27
  5. installer une variable environnement dans windows xp pack 2
    Par superjeanpi dans le forum Windows XP
    Réponses: 1
    Dernier message: 03/03/2005, 10h13

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