Benutzer-Werkzeuge

Webseiten-Werkzeuge


perl_array_of_hashes

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
perl_array_of_hashes [2018/12/20 10:07]
admin angelegt
perl_array_of_hashes [2018/12/20 10:28] (aktuell)
admin [Quellen]
Zeile 1: Zeile 1:
 ====== Array of Hashes ====== ====== Array of Hashes ======
  
 +===== Erstellung eines "Array of Hashes"​ =====
  
-===== Quellen =====+<code bash> 
 +@AoH = ( 
 +    { 
 +       ​husband ​ => "​barney",​ 
 +       ​wife ​    => "​betty",​ 
 +       ​son ​     => "bamm bamm",​ 
 +    }, 
 +    { 
 +       ​husband => "​george",​ 
 +       ​wife ​   => "​jane",​ 
 +       ​son ​    => "​elroy",​ 
 +    }, 
 + 
 +    { 
 +       ​husband => "​homer",​ 
 +       ​wife ​   => "​marge",​ 
 +       ​son ​    => "​bart",​ 
 +    }, 
 +  ); 
 +</​code>​ 
 +Hinzufügen eines hash zum array: 
 +<code bash> 
 +push @AoH, { husband => "​fred",​ wife => "​wilma",​ daughter => "​pebbles"​ }; 
 +</​code>​ 
 + 
 +===== Generation eines Array of Hashes ===== 
 + 
 +Einlesen einer Datei im Format "​husband=fred friend=barney"​ mit einer der folgenden Schleifen:​ 
 + 
 +<code perl> 
 +while ( <> ) { 
 +    $rec = {}; 
 +    for $field ( split ) { 
 +        ($key, $value) = split /=/, $field; 
 +        $rec->​{$key} = $value; 
 +    } 
 +    push @AoH, $rec; 
 +
 + 
 +while ( <> ) { 
 +    push @AoH, { split /[\s=]+/ }; 
 +
 +</​code>​ 
 + 
 +Innerhalb einer Subroutine '​get_next_pair',​ das eine key/value Paar liefert. 
 +<code perl> 
 +while ( @fields = get_next_pair() ) { 
 +    push @AoH, { @fields }; 
 +
 + 
 +while (<>) { 
 +    push @AoH, { get_next_pair($_) }; 
 +
 +</​code>​ 
 + 
 +Anhängen neuer Einträge an ein existierendes hash: 
 +<code perl> 
 +$AoH[0]{pet} = "​dino";​ 
 +$AoH[2]{pet} = "​santa'​s little helper";​ 
 +</​code>​ 
 + 
 +===== Adressierung und Ausgabe eines Array of Hashes ===== 
 + 
 +<code perl> 
 +$AoH[0]{husband} = "​fred";​ # Setzen eines expliziten key/value Paars 
 +To capitalize the husband of the second array, apply a substitution:​ 
 +$AoH[1]{husband} =~ s/​(\w)/​\u$1/;​ 
 +</​code>​ 
 + 
 +Ausgabe aller Daten: 
 +<code perl> 
 +for $href ( @AoH ) { 
 +    print "{ "; 
 +    for $role ( keys %$href ) { 
 +         print "​$role=$href->​{$role} "; 
 +    } 
 +    print "​}\n";​ 
 +
 + 
 +# mit indices: 
 + 
 +for $i ( 0 .. $#AoH ) { 
 +    print "$i is { "; 
 +    for $role ( keys %{ $AoH[$i] } ) { 
 +         print "​$role=$AoH[$i]{$role} "; 
 +    } 
 +    print "​}\n";​ 
 +
 +</​code>​ 
 + 
 +====== Quellen ​======
   * O'​REILLY - Programming Perl (https://​docstore.mik.ua/​orelly/​perl4/​prog/​ch09_03.htm)   * O'​REILLY - Programming Perl (https://​docstore.mik.ua/​orelly/​perl4/​prog/​ch09_03.htm)
perl_array_of_hashes.1545296861.txt.gz · Zuletzt geändert: 2018/12/20 10:07 von admin