Bonjour
Quelqu'un connaît la syntaxe pour récuperer les valeurs et la clef d'un hash d'un hash ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
 
        $INFRA{$CFG{RADROOT}} = 'SRV1';
 
	my %SERVEURS;
	$SERVEURS{SRV1}{SERVICE1}	= 'CONFIGURATION SERVER';
	$SERVEURS{SRV1}{SERVICE2}	= 'Integration Server Policy Server on Port 3473';
	$SERVEURS{SRV1}{SERVICE3}	= 'Messaging Server (rms)';
	$SERVEURS{SRV1}{SERVICE4}	= 'MSI Redirector';
	$SERVEURS{SRV1}{SERVICE5}	= 'Notify Daemon';
	$SERVEURS{SRV1}{SERVICE6}	= 'Scheduler Daemon';
 
	while (($KEY, %VAL) = each (%SERVEURS))
	 {
	   if ($INFRA{$CFG{RADROOT}} eq $KEY)
	    {
 	      print $INFRA{$CFG{RADROOT}}."\n";
	      while (($SRV, $TXT) = each (%VAL))
	       {
		 print "$SRV\n";
	         my @SVC = `net stop $SRV`;
	         if (grep('arrˆt‚',@SVC)){sys_log($FILELOG,'SERV',"$SRV ($TXT) Statut : STOP");}else{sys_log($FILELOG,'SERV',"$SRV ($TXT) Statut : NOT RUNNING");}
 
	       }
	    }
	 }
Merci de votre aide.


J'ai trouvé une solution

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
	sub netservices
	 {
	   my $STATUT = shift;
	   my $SERVICES    =\%SERVEURS;
 
	   sys_log($FILELOG,'SERV',"$STATUT Services");
 
	   for my $KEY (keys %$SERVICES)
	    {
	      print "$KEY\n";
	      if ($INFRA{$CFG{RADROOT}} eq $KEY)
	       {
	         while (($SRV,$VAL) = each (%{$SERVICES ->{ $KEY }}))
	          {
		    print "net $STATUT $SRV ($SERVICES->{$KEY}->{$SRV})\n";			  
		    my @SVC = `net $STATUT $SRV`;
		    if ($STATUT eq 'STOP')
		     {if (grep('arrˆt‚',@SVC)){sys_log($FILELOG,'SERV',"Statut : STOP");}else{sys_log($FILELOG,'SERV',"Statut : NOT RUNNING");}}
		    else
		     {if (grep('d‚marr‚',@SVC)){sys_log($FILELOG,'SERV',"Statut : START");}else{sys_log($FILELOG,'SERV',"Statut : NOT RUNNING");}	}
	          }
	       }
	    }		 
	 }