piet: Array in Hash speichern

Hallo,

ich möchte in einem Hash ein Array speichern bzw. initialisieren.

my %inInfo = (
               'ID'=>0,
               'x'=>1,
               'y'=>0,
               'z'=>0,
               und hier ein Array mit 25 Feldern
              );

Wie kann ich dies lösen ?

Danke
       piet

  1. Moin piet,

    ich möchte in einem Hash ein Array speichern bzw. initialisieren.

    my %inInfo = (
                   'ID'=>0,
                   'x'=>1,
                   'y'=>0,
                   'z'=>0,
                   und hier ein Array mit 25 Feldern
                  );

    Wie kann ich dies lösen ?

    Perl ist ein wenig veraltet, deshalb ist das mit den Datenstrukturen da auch noch etwas anders geregelt. Man kann nur Skalare Werte in Listen und Hashes speichern. Wenn man mehr will, muss man Referenzen verwenden:

      
    my %inInfo = (  
      'ID'=>0,  
      'x'=>1,  
      'y'=>0,  
      'z'=>0,  
      'myarray' => [1, 2, 3],  
      'myhash' => {'a' => 'b', 'c' => [3,4,5]}  
    );  
    
    

    [] erstellt eine Referenz auf eine Liste während {} eine Referenz auf einen Hash erstellt. Du könntest das auch so machen:

      
    my @myarray = (1, 2, 3);  
    my %myhash = ('a' => 'b', 'c' => [3,4,5])  
      
    my %inInfo = (  
      'ID'=>0,  
      'x'=>1,  
      'y'=>0,  
      'z'=>0,  
      'myarray' => \@myarray,  
      'myhash' => \%myhash  
    );  
    
    

    Mehr Infos findest du auch in perllol und perlref.

    LG,
     CK