salut,
Est il possible en perl de faire un export d' une variable d'environnement dans l'hypothese ou cette variable n'est pas defini ou si l'on souhaite modifier sa valeur ?
Merci
Version imprimable
salut,
Est il possible en perl de faire un export d' une variable d'environnement dans l'hypothese ou cette variable n'est pas defini ou si l'on souhaite modifier sa valeur ?
Merci
Salut ! Tu pourrais préciser un peu ce que tu veux faire ? Je suis pas sûr de comprendre là ;)Citation:
Envoyé par donny
c'est simple, c'est comme sous unix.je souhaiterais modifé ou affecter une valeur à une variable d'environnement.
je veux faire cela
MAENVVAR=toto
export MAENVVAR
Est-ce que tu veux que cette variable ait cette valeur après l'exécution du script ou seulement pendant ?
Dans le second cas, tu peux modifier %ENV
Crois-je...Code:$ENV{MAENVVAR} = "toto";
Hello,
Je profite de ce post pour poser une question,
J'utilise également le $ENV{''} pour lire et changer la valeur, mais je n'arrive pas à récupérer la nouvelle valeur dans un batch.
Un exemple avec un batch "appel.bat" et un programme Perl "pgm.pl" :
Dans "appel.bat" :
Dans "pgm.pl" :Code:
1
2
3 SET MAVAR=AAA C:\Perl\bin\perl.exe "C:/pgm.pl" ECHO %MAVAR%
La variable MAVAR est bien lue et bien modifiée dans "pgm.pl"Code:
1
2
3 print $ENV{'MAVAR'}; # Affiche "AAA" $ENV{'MAVAR'} = "BBB"; print $ENV{'MAVAR'}; # Affiche "BBB"
Mais dans le batch "appel.bat", le ECHO en ligne 3 affiche toujours "AAA" pourtant la valeur a bien été modifiée dans le pgm.pl
Comment se fait-ce ??
Pourquoi veux-tu à tous prix modifier les variables d'environnement ? En général, ces variables sont faites pour être fixées une fois pour toutes dans le système. La modification par l'execution d'un programme doit être exceptionnelle.
A quoi ça te sert de modifier la variable depuis le perl ?
Je ne veux pas modifier les variables d'environnement existantes (comme %TIME%, %PATH%, etc)
Je veux en créer de nouvelles, afin de passer des valeurs d'un processus fils à un processus père.
alors ca n'est pas la bonne methode
fais une recherche sur search.cpan.org sur "IPC"
en gros les possibilités (efficaces) sont de passer soit par une zone memoire partagée (en mmap), soit par des sockets, soit par le systeme de fichier (berkeleyDB ou autre)
quelque pistes:
http://search.cpan.org/~robm/Cache-F...14/FastMmap.pm
http://search.cpan.org/~pmqs/Berkele...BerkeleyDB.pod
et une solution assez generique (meme inter machines avec memcached ou DBI):
http://search.cpan.org/~audreyt/IPC-.../IPC/PubSub.pm