Récupérer les valeurs d'un hash

Récupérer les valeurs d'un hash - Perl - Programmation

Marsh Posté le 14-10-2004 à 16:19:26    

Bonjour,
J’aimerais récupérer chaque valeur du hash suivant avec une boucle :

Code :
  1. # perl hashref output
  2. {
  3.     DATE    => 'Tue Oct 12 11:13:42 2004',
  4.     CMDLINE => [
  5.         'nbtscan',
  6.         '-P',
  7.         '10',
  8.     ],
  9.     NBTSCAN => {
  10.         '10.10.10.20' => {
  11.             rDNS         => '108708.toto.com',
  12.             IPAddress    => '10.10.10.20',
  13.             MACAddress   => '00:0f:1f:00:00:00',
  14.             DomainName   => 'NT-DOM',
  15.             ComputerName => '108708',
  16.             Sharing      => 1,
  17.             DC           => 0,
  18.             Exchange     => 0,
  19.             IIS          => 0,
  20.             LotusNotes   => 0,
  21.             Nodes        => [
  22.                 [ '108708'  , 0x00, 'UNIQUE', 'Workstation Service' ],
  23.                 [ 'NT-DOM', 0x00, 'GROUP ', 'Domain Name' ],
  24.                 [ '108708'  , 0x03, 'UNIQUE', 'Messenger Service<3>' ],
  25.                 [ '108708'  , 0x20, 'UNIQUE', 'File Server Service' ],
  26.                 [ 'NT-DOM', 0x1E, 'GROUP ', 'Browser Service Elections'
  27. ],
  28.                 [ 'toto'   , 0x03, 'UNIQUE', 'Messenger Service<3>' ],
  29.             ],
  30.         },
  31.     }
  32. }


 
Ce hash est le retour de la commande NBTSCAN -P (http://www.unixwiz.net/tools/nbtscan.html)
 
Merci.

Reply

Marsh Posté le 14-10-2004 à 16:19:26   

Reply

Marsh Posté le 16-10-2004 à 04:37:20    

Et ?

Reply

Marsh Posté le 25-10-2004 à 09:30:25    

Bah,  
simplement comment récupérer chaque valeur de ce hash avec une boucle genre "for" ?  
Je ne vois pas comment faire la boucle "for" car d'habitude le Hash Perl est plutôt comme ça :
 
%MD_Hash = (
   'Key-0' => [ 'FirstValue_0', 'SecondValue_0', 'ThirdValue_0',
   'FourthValue_0' ],
 
   'Key-1' => [ 'FirstValue_1', 'SecondValue_1', 'ThirdValue_1',
   'FourthValue_1' ]
);
 
Merci


Message édité par sieurvld le 25-10-2004 à 09:31:23
Reply

Marsh Posté le 25-10-2004 à 10:39:02    

Code :
  1. for my $key (keys %hash) {
  2.     my $val = $hash($key);
  3.     ...
  4. }
  5. ou bien
  6. while (my($key, $val) = each %hash) {
  7.     ...
  8. }
  9. mais sache que dans une boucle de each tu ne peux pas modifier le hash => mieux vaut utiliser le for keys la plupart du temps

Reply

Sujets relatifs:

Leave a Replay

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