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
perl_array_of_hashes [2018/12/20 10:16]
admin [Array of Hashes]
perl_array_of_hashes [2018/12/20 10:28] (aktuell)
admin [Quellen]
Zeile 27: Zeile 27:
 push @AoH, { husband => "​fred",​ wife => "​wilma",​ daughter => "​pebbles"​ }; push @AoH, { husband => "​fred",​ wife => "​wilma",​ daughter => "​pebbles"​ };
 </​code>​ </​code>​
-===== Quellen =====+ 
 +===== 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.1545297370.txt.gz · Zuletzt geändert: 2018/12/20 10:16 von admin