[perl] enregistrer commande dans variable

Résolu/Fermé
tisba972 Messages postés 334 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 - 29 juil. 2008 à 17:52
tisba972 Messages postés 334 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 - 29 juil. 2008 à 19:07
Bonjour,

je voudrais enregistrer le resultat d'une commande unix dans une variable de mon script perl

je fais :

my $domain;
system "dnsdomainname";

et je voudrais enreggistrer le resultat de cette commande dans $domain .

comment faire?
A voir également:

4 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
29 juil. 2008 à 18:52
Re,

essaie comme ça
#!/usr/bin/perl
#
use warnings;use strict;

sub lieu{
  $domain = qx/dnsdomainname/;
  if ((split /\./,$domain)[0] eq 'dirag'){
    $ile="Martinique";
  }else{
    $ile="Autre";
  }
  print $ile,"\n";
}

lieu;
__END__
2
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
29 juil. 2008 à 18:09
Salut,

tu dois utiliser qx// ou les apostrophes inverses pour récupérer le résultat d'une commande

Voici un exemple dans lequel je récupère en premier le résultat de la commande hostname et ensuite celle de la commande ls -l *.pl
lami20j@debian:~/trash$ hostname
debian
lami20j@debian:~/trash$ ls -l *.pl
-rw-r--r-- 1 lami20j lami20j  533 2008-04-10 00:04 bramble.pl
-rwxr-xr-x 1 lami20j lami20j  582 2008-01-08 21:14 ccm2.pl
-rw-r--r-- 1 lami20j lami20j  224 2008-02-01 06:43 ccm3.pl
-rwxr-xr-x 1 lami20j lami20j  177 2008-07-29 18:07 ccm.pl
-rw-r--r-- 1 lami20j lami20j  724 2008-05-20 21:33 clemail.pl
-rw-r--r-- 1 lami20j lami20j  573 2008-04-22 11:13 compfic2.pl
-rw-r--r-- 1 lami20j lami20j  434 2008-04-13 00:25 compfic.pl
-rw-r--r-- 1 lami20j lami20j  456 2008-04-12 12:52 comp.pl
-rw-r--r-- 1 lami20j lami20j  716 2008-03-10 20:15 cyg2.pl
-rw-r--r-- 1 lami20j lami20j  170 2007-12-03 23:03 date.pl
-rw-r--r-- 1 lami20j lami20j  228 2008-04-29 19:25 emilie.pl
-rw-r--r-- 1 lami20j lami20j  156 2008-06-14 10:43 epoch2time.pl
-rw-r--r-- 1 lami20j lami20j  279 2007-12-03 20:40 everdraft.pl
-rw-r--r-- 1 lami20j lami20j  890 2008-01-01 12:20 exxan_mailing.pl
-rw-r--r-- 1 lami20j lami20j  595 2008-03-12 20:16 ficatore2.pl
-rw-r--r-- 1 lami20j lami20j  506 2008-03-11 19:57 ficatore.pl
-rw-r--r-- 1 lami20j lami20j  130 2008-05-28 22:57 f_pignon.pl
-rw-r--r-- 1 lami20j lami20j  720 2008-03-22 08:34 graph.pl
-rw-r--r-- 1 lami20j lami20j  757 2008-01-09 07:39 l_histoire_de_l_archiduc_albert.pl
-rw-r--r-- 1 lami20j lami20j  253 2007-11-16 22:40 max.pl
-rw-r--r-- 1 lami20j lami20j  252 2007-11-16 22:35 moyenne.pl
-rw-r--r-- 1 lami20j lami20j  528 2008-06-11 20:16 mrt.pl
-rw-r--r-- 1 lami20j lami20j   98 2008-02-03 11:58 ntp.pl
-rw-r--r-- 1 lami20j lami20j  741 2007-10-10 22:34 send_mail_mimelite-1.pl
-rw-r--r-- 1 lami20j lami20j 1936 2007-12-30 22:22 send_mail_mimelite.html.img.final.pl
-rw-r--r-- 1 lami20j lami20j 1126 2007-12-16 17:30 send_mail_mimelite.html.pl
-rw-r--r-- 1 lami20j lami20j 1639 2007-12-16 17:41 send_mail_mimelite.img.pl
-rw-r--r-- 1 lami20j lami20j  626 2007-12-03 20:22 send_mail_mimelite.pl
-rw-r--r-- 1 lami20j lami20j  806 2008-03-23 13:57 smart_girl.pl
-rw-r--r-- 1 lami20j lami20j  928 2008-01-14 20:09 specimen.pl
-rw-r--r-- 1 lami20j lami20j  627 2008-07-19 08:49 strlen.pl
-rw-r--r-- 1 lami20j lami20j  562 2008-07-21 20:11 tableau.pl
-rw-r--r-- 1 lami20j lami20j  170 2007-10-01 19:48 test.pl
-rw-r--r-- 1 lami20j lami20j  269 2008-05-17 15:17 texte.pl
-rw-r--r-- 1 lami20j lami20j  965 2008-04-24 14:37 time2epoch.pl
-rw-r--r-- 1 lami20j lami20j  363 2008-07-21 22:46 tk.pl
-rw-r--r-- 1 lami20j lami20j   34 2008-04-12 00:07 vvv.pl
-rw-r--r-- 1 lami20j lami20j  423 2008-07-24 21:36 wafa_o.pl
lami20j@debian:~/trash$ cat ccm.pl
#!/usr/bin/perl
#
use warnings;use strict;

my $hostname = qx/hostname/;
printf "\$hostname = $hostname";
my $ls = `ls -l *.pl`;
printf "-" x 10;
print "\n\$ls = $ls";

__END__
lami20j@debian:~/trash$ perl ccm.pl
$hostname = debian
----------
$ls = -rw-r--r-- 1 lami20j lami20j  533 2008-04-10 00:04 bramble.pl
-rwxr-xr-x 1 lami20j lami20j  582 2008-01-08 21:14 ccm2.pl
-rw-r--r-- 1 lami20j lami20j  224 2008-02-01 06:43 ccm3.pl
-rwxr-xr-x 1 lami20j lami20j  177 2008-07-29 18:07 ccm.pl
-rw-r--r-- 1 lami20j lami20j  724 2008-05-20 21:33 clemail.pl
-rw-r--r-- 1 lami20j lami20j  573 2008-04-22 11:13 compfic2.pl
-rw-r--r-- 1 lami20j lami20j  434 2008-04-13 00:25 compfic.pl
-rw-r--r-- 1 lami20j lami20j  456 2008-04-12 12:52 comp.pl
-rw-r--r-- 1 lami20j lami20j  716 2008-03-10 20:15 cyg2.pl
-rw-r--r-- 1 lami20j lami20j  170 2007-12-03 23:03 date.pl
-rw-r--r-- 1 lami20j lami20j  228 2008-04-29 19:25 emilie.pl
-rw-r--r-- 1 lami20j lami20j  156 2008-06-14 10:43 epoch2time.pl
-rw-r--r-- 1 lami20j lami20j  279 2007-12-03 20:40 everdraft.pl
-rw-r--r-- 1 lami20j lami20j  890 2008-01-01 12:20 exxan_mailing.pl
-rw-r--r-- 1 lami20j lami20j  595 2008-03-12 20:16 ficatore2.pl
-rw-r--r-- 1 lami20j lami20j  506 2008-03-11 19:57 ficatore.pl
-rw-r--r-- 1 lami20j lami20j  130 2008-05-28 22:57 f_pignon.pl
-rw-r--r-- 1 lami20j lami20j  720 2008-03-22 08:34 graph.pl
-rw-r--r-- 1 lami20j lami20j  757 2008-01-09 07:39 l_histoire_de_l_archiduc_albert.pl
-rw-r--r-- 1 lami20j lami20j  253 2007-11-16 22:40 max.pl
-rw-r--r-- 1 lami20j lami20j  252 2007-11-16 22:35 moyenne.pl
-rw-r--r-- 1 lami20j lami20j  528 2008-06-11 20:16 mrt.pl
-rw-r--r-- 1 lami20j lami20j   98 2008-02-03 11:58 ntp.pl
-rw-r--r-- 1 lami20j lami20j  741 2007-10-10 22:34 send_mail_mimelite-1.pl
-rw-r--r-- 1 lami20j lami20j 1936 2007-12-30 22:22 send_mail_mimelite.html.img.final.pl
-rw-r--r-- 1 lami20j lami20j 1126 2007-12-16 17:30 send_mail_mimelite.html.pl
-rw-r--r-- 1 lami20j lami20j 1639 2007-12-16 17:41 send_mail_mimelite.img.pl
-rw-r--r-- 1 lami20j lami20j  626 2007-12-03 20:22 send_mail_mimelite.pl
-rw-r--r-- 1 lami20j lami20j  806 2008-03-23 13:57 smart_girl.pl
-rw-r--r-- 1 lami20j lami20j  928 2008-01-14 20:09 specimen.pl
-rw-r--r-- 1 lami20j lami20j  627 2008-07-19 08:49 strlen.pl
-rw-r--r-- 1 lami20j lami20j  562 2008-07-21 20:11 tableau.pl
-rw-r--r-- 1 lami20j lami20j  170 2007-10-01 19:48 test.pl
-rw-r--r-- 1 lami20j lami20j  269 2008-05-17 15:17 texte.pl
-rw-r--r-- 1 lami20j lami20j  965 2008-04-24 14:37 time2epoch.pl
-rw-r--r-- 1 lami20j lami20j  363 2008-07-21 22:46 tk.pl
-rw-r--r-- 1 lami20j lami20j   34 2008-04-12 00:07 vvv.pl
-rw-r--r-- 1 lami20j lami20j  423 2008-07-24 21:36 wafa_o.pl
lami20j@debian:~/trash$  

0
tisba972 Messages postés 334 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 44
29 juil. 2008 à 18:19
AU POIL ;)

parcontre j'ai encore un soucis , j'espère ne pas te déranger en te demandant encore de l'aide.
j'ai créé la fonction suivante :
le chmap renvoyer par dnsdomainname est : dirag.meteo.fr

sub lieu
{
my $domain;
my @ligne;
my $ile;

$domain = qx/dnsdomainname/;

@ligne = split ".",$domain;
if($ligne[0] eq "dirag")
{
$ile = "MARTINIQUE"
}
print $ile;
}

et cette fonction ne fonctionne pas.
D'ou peux venir le soucis ?
merci
0
tisba972 Messages postés 334 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 44
29 juil. 2008 à 19:07
Merci
maintenant ça passe nickel

:)
0