Bonjour,
J'ai un script appelant.pl qui lance le script appel.pl
Je veux récupérer dans appelant.pl une variable qui sera valorisée dans appel.pl
Comment dois-je faire?
Merci de vos réponses
Version imprimable
Bonjour,
J'ai un script appelant.pl qui lance le script appel.pl
Je veux récupérer dans appelant.pl une variable qui sera valorisée dans appel.pl
Comment dois-je faire?
Merci de vos réponses
il n'est pas possible d'intégrer le 2è script dans le premier ?
sinon, est-ce que le 2è script écrit quelque chose ?
sinon, tu peux essayer d'écrire ta valeur en fin de scriptou utiliser les variables partagées (threads::shared si je me souviens bien, mais ça a pu évoluer depuis la dernière fois que j'ai eu à l'utiliser)Code:
1
2
3
4
5 #appel print $ma_valeur; #appelant my $sortie = `perl appel.pl some_parameters`;
Comme le dit Gardyen, si tu mets ton appel du script appelé entre backticks (accents graves), alors tu peux récupérer dans une variable (scalaire ou tableau) tout ce que le script appelé écrit normalement sur la sortie standard.
Appel du second script dans l'appelant:
Contenu d'appel.pl:Code:
1
2 my @lignes_generees_par_appel_pl = `perl appel.pl $param`;
Tu récupéreras les deux lignes "toto\n" et "titi\n" dans le tableau @lignes_generees_par_appel_pl.Code:
1
2
3
4
5 # ... print "toto\n"; print "titi\n"; # ...
Bonjour,
Merci de vos réponses
Est-ce que cela marche aussi avec le script appelé en shell et l'appelant en Perl?
Merci
Oui, tu récupèreras ce qu'écrit le script shell sur la sortie standard:
Code:
1
2
3 $ perl -e 'my $c = `echo "toto"`; print "Valeur de la var " . q/$c/ . " = $c";' Valeur de la var $c = toto