Thread Daten "Hashen"? (14 answers)
Opened by gmafx at 2010-11-25 22:39

gmafx
 2010-11-27 22:09
#143138 #143138
User since
2009-11-19
47 Artikel
BenutzerIn
[default_avatar]
Edit: hab's kapiert: vielen vielen Dank! Kann jetzt endlich die Struktur erkennen und auch meinen Wünschen entsprechend manipulieren!




Ok, jetzt sehe ich erst, dass dieser Code genau das macht, was ich wollte: zu jedem Key gibt es so viele Arrays, wie es Spalten gibt!

Nur leider verstehe ich die Struktur, insbesondere, wie man einzelne Elemente anspricht, überhaupt nicht!

Zuerst das Erstellen der Struktur:
Code: (dl )
push @{ $elements{$id}->[$_] }, $words[$_] for 0 .. $#words;


Was bedeutet das
Code: (dl )
@{
, ist das eine Autivivkation, sprich die Erstellung mehrerer Arrays (entsprechend der Spalten in der Datei)?

Und das Drucken verstehe ich auch nicht :
Code: (dl )
1
2
for my $i ( 0 .. $#{$v} ) {
print " col $i: ". join( ', ', @{ $v->[$i] } ) ."\n";


Was ist bitte
Code: (dl )
$#{$v}


Das habe ich schon häufiger mal beim Rumschnüffeln in anderer Leute Code gesehen, ausserdem taucht es in "Programming Perl" im zu diesem Thread passenden Kapitel (Hash of Arrays) auf, nur leider wird es nicht erklärt, was soll dieses Raute-Zeichen, der Dollar ist eine Hashreferenz, aber was soll die Raute?

Wie "heißen" denn nun eigentlich die 3 Arrays, die für die 3 Spalten angelegt wurden (Arrayreferenzen, oder?)? Wie kann ich gezielt Elemente ansprechen? Ich nehme an, ich muss dereferenzieren!??

Damit ich das endlich mal verstehe: wie spreche ich denn zum Besipiel für "ID1" den jeweils ersten Wert in den entsprechenden 3 Arrays an, noch lieber wäre es mir, die entsprechenden Werte einfach an "lesbare" Arraydefintionen zu Übergeben, etwa so:

Pseudocode:
für jeden Key
{
@col1= dereferenzierte Arrayreferenz vom Einlesen von Spalte1
@col2......
Analyse der eingelesenen Daten
}
Last edited: 2010-11-29 16:02:48 +0100 (CET)

View full thread Daten "Hashen"?