Benutzer-Werkzeuge

Webseiten-Werkzeuge


perl_array_of_hashes

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte Überarbeitung Beide Seiten der Revision
perl_array_of_hashes [2018/12/20 10:16]
admin [Array of Hashes]
perl_array_of_hashes [2018/12/20 10:27]
admin [Generation eines Array of Hashes]
Zeile 27: Zeile 27:
 push @AoH, { husband => "​fred",​ wife => "​wilma",​ daughter => "​pebbles"​ }; push @AoH, { husband => "​fred",​ wife => "​wilma",​ daughter => "​pebbles"​ };
 </​code>​ </​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