[PERL] besoin de votre aide pour comprendre une variable

besoin de votre aide pour comprendre une variable [PERL] - Perl - Programmation

Marsh Posté le 30-01-2008 à 11:31:01    

Bonjour à tous,
j'ai récupérer un script en PERL que j'ai trouvé ici : http://search.cpan.org/~dtown/Net- [...] m#EXAMPLES afin de remonter des infos sur la temperature interne d'un onduleur avec le proto SNMP, mais je ne comprend pas tout ce qui est dans le code...
En particulier à quoi correspond le %s
 

Code :
  1. #!/usr/bin/perl
  2. use strict;
  3. use Net::SNMP;
  4. my ($session, $error) = Net::SNMP->session(
  5.       -hostname  => shift || '192.168.254.250',
  6.       -community => shift || 'public',
  7.       -port      => shift || 161
  8.                                               );
  9. if (!defined($session)) {
  10.     printf("ERROR: %s.\n", $error);
  11.     exit 1;
  12. }
  13. my $temperature = '1.3.6.1.4.1.705.1.5.7.0';
  14. my $result = $session->get_request(-varbindlist => [$temperature]);
  15. if (!defined($result)) {
  16.     printf("ERROR: %s.\n", $session->error);
  17.     $session->close;
  18.     exit 1;
  19. }
  20. printf("la Temperature dans la salle machine est de %s : %s degres\n",
  21.   $session->hostname, $result->{$temperature});
  22. $session->close;
  23. exit 0;


 
Pourriez-vous m'aiguiller ?
merci bcp !!  :hello:

Reply

Marsh Posté le 30-01-2008 à 11:31:01   

Reply

Marsh Posté le 30-01-2008 à 11:47:58    

la doc c'est bien ;)
http://perldoc.perl.org/functions/sprintf.html
 
Ce n'est donc pas une variable :o

Reply

Marsh Posté le 30-01-2008 à 16:17:20    

anapajari a écrit :

Ce n'est donc pas une variable :o


 
En effet, ce n'est pas une variable...
J'ai regarder la doc., mais je ne comprend toujours pas comment faire pour afficher la T° interne de l'onduleur lorsque je fais

Code :
  1. printf("la Temperature dans la salle machine est de %s : %s degres\n",


 
Le code que j'ai fait retourne ceci :
 
la Temperature dans la salle machine est de 192.168.254.250 : 21 degres
 
Mais pourquoi les 2 %s prennent 2 veleurs différentes ?
 
 

Reply

Marsh Posté le 30-01-2008 à 16:22:10    

premier paramètre, premier %s
second parametre, second %s
et ainsi de suite

Reply

Marsh Posté le 30-01-2008 à 16:26:36    

et comment faire pour n'afficher que la T° sans l'adresse IP ?
Car si je ne met pas les 2 paramètres, cela m'affiche un message d'erreur...

Reply

Marsh Posté le 30-01-2008 à 16:34:34    

:/ :/ :/ ... qu'est ce que tu comprends pas dans la doc ???
tu lui passes 2 paramètres à sprintf là:

Code :
  1. printf("la Temperature dans la salle machine est de %s : %s degres\n", $session->hostname, $result->{$temperature});


Si tu ne veux afficher que la temperature il faut enlever un %s ET un paramètre ...
Question piège: lequel faut-il enlever à ton avis?

 


Message édité par anapajari le 30-01-2008 à 16:35:06

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 30-01-2008 à 22:19:52    

OK je crois avoir compris
 
ca ne serait pas ca :

Code :
  1. printf("la Temperature dans la salle machine est de %s degres\n", $result->{$temperature});


 
 :pt1cable:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed