• # RE: Exporter variable perl dans le shell qui le lance

    Posté par  . Évalué à 3.

    Non, pas directement.

    Si tu lances ton interpréteur perl, c'est que tu fais un fork(). Un processus forke hérite des variables d'environnement du processus de l'environnement qui le lance. Mais le processus fils de peut pas modifier l'environnement du père.

    En outre, tu peux renvoyer un code retour, mais c'est limité : c'est un nombre entre -127 et +127.

    Le mieux c'est de renvoyer ce que tu veux sur la sortie standard de ton script perl : comme ceci

    perl (script.pl)

    > #!/usr/bin/perl
    > my $resultat="Le resultat !!!";
    > print "$resultat\n";

    shell :

    > RESULTAT=`perl script.pl`

    RESULTAT devrait contenir "Le resultat !!!".
  • # ca manque un peu de précisions...

    Posté par  . Évalué à 2.

    mais de ce que j'ai compris tu as un scipt shell qui a besoin d'une valeur calculé par un prog perl :)

    tout pleins de solution l'export de varible ne marche que dans le sens pere->fils ( je crois ) donc il te reste
    1 ) les fichiers temporaires ( bouh pas bô )
    2 ) les I/O en shell la meillieur maniere de renvoyer une varible a un process pere et un bete echo ( ou print )
    donc tu devrai pouvoir écrire var=$( toto.pl )

    ensuite tu peux aussi tout faire en perl en mettan un #!/usr/bin/perl en premiere ligne ca se lance comme un script shell ensuite :P

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.