XML::Simple Hash de hash de hash...

XML::Simple Hash de hash de hash... - Perl - Programmation

Marsh Posté le 24-08-2005 à 20:39:48    

pour des configurations réseaux, j'ai des hash de hash de hash... sur quelques niveau. Ca ressemble un peu à ceci:
 

Code :
  1. my $ref;
  2. $ref->{add}{advisor}{$id}{$key} = ...;
  3. $ref->{add}{cluster}{$id}{$key} = ...;
  4. $ref->{add}{port}{$id}{$key} = ...;
  5. $ref->{add}{server}{$id}{$key} = ...;
  6. $ref->{delete}{advisor}{$id}{$key} = ...;
  7. $ref->{delete}{cluster}{$id}{$key} = ...;
  8. $ref->{delete}{port}{$id}{$key} = ...;
  9. $ref->{delete}{server}{$id}{$key} = ...;
  10. $ref->{modify}{host}{$key} = ...;
  11. $ref->{modify}{executor}{$key} = ...;
  12. $ref->{modify}{manager}{$key} = ...;
  13. $ref->{modify}{advisor}{$id}{$key} = ...;
  14. $ref->{modify}{cluster}{$id}{$key} = ...;
  15. $ref->{modify}{port}{$id}{$key} = ...;
  16. $ref->{modify}{server}{$id}{$key} = ...;


 
le problème, c'est que le xml pondu avec XML::Simple semble pas être représentatif de la vraie structure. De plus, quand je le fait un XMLin() par la suite, ca me donne pas dutout la meme structure
 
l'option utilisée pour le XMLout():
NoAttr => 1
 
les options utilisées pour le XMLin():
ForceArray => 0
NoAttr => 1
KeyAttr => ''
 
le XMLin() me lit un "hash d'array de hash de hash" à partir du xml au lieu d'un hash de hash de hash de hash :D
 
la trace de Dumper
 


$VAR1 = {
          'add' => [
                   {
                     'port_id1' => {
                                   'port_key' => 'value1',
                                  },
                     'port_id2' => {
                                   'port_key' => 'value2',
                                  },
                     'name' => 'port'
                   },
                   {
                     'server_id1' => {
                                     'server_key' => 'value1',
                                    },
                     'name' => 'server'
                   }
                 ],
...

Reply

Marsh Posté le 24-08-2005 à 20:39:48   

Reply

Marsh Posté le 24-08-2005 à 22:57:14    

J'ai jamais trop aimé XML::Simple... en fait il veut faire simple mais on se retrouve toujours à bidouiller les options en priant pour que ca passe (mais ca passe jamais et finalement on prend autre chose)
 
Essai peut etre XML:: Dumper
La au moins tu peu etre certain que ca passera dans les deux sens
 
Mais pour des fichiers de config je te conseil plutot YAML que le XML


Message édité par pospos le 24-08-2005 à 22:57:49
Reply

Marsh Posté le 25-08-2005 à 19:16:46    

il semble pas aimer les hash de hash (puisque le 2e hash est en fait une référence
 
ex: <hashref memory_address="0x2026cc9c">

Reply

Marsh Posté le 25-08-2005 à 19:22:02    

hum il semble quand meme capable de reconstituer la structure meme à partir d'une autre machine

Reply

Sujets relatifs:

Leave a Replay

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