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
Letzte Überarbeitung Beide Seiten der Revision
perl_array_of_hashes [2018/12/20 10:07]
admin angelegt
perl_array_of_hashes [2018/12/20 10:27]
admin [Generation eines Array of Hashes]
Zeile 1: Zeile 1:
 ====== Array of Hashes ====== ====== Array of Hashes ======
  
 +===== Erstellung eines "Array of Hashes"​ =====
 +
 +<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 ===== ===== 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.txt · Zuletzt geändert: 2018/12/20 10:28 von admin