hotti: Perl-Vergleich für zwei Variabeln gleichzeitig

Beitrag lesen

hi,

Ein Hash kann aber meines Wissens nur zwei Elemente speichern: Name und Wert.

Ein hash hat key => value, das ist richtig. Der value kann jedoch wiederum ein key sein, welcher auf einen Speicherbereich zeigt (Referenz):

  
$hash{oid}{att} = $value;  

Keys in hashes sind Scalare. Referenzen sind auch Scalare. Ein Value kann auch eine Array-Referenz sein:

  
$hash{arr} = [1,2,3];  

Hast Du anstelle hash eine hash-Referenz kommt der Arrow-Operator ins Spiel

  
$href->{oid}->{att} = $val;  

Wobei der zweite Pfeil auch weggelassen werden kann, weil an dieser Stelle sowieso eine Referenz erwartet wird:

  
$href->{oid}{att} = $val;  

Da müsste ich ja die schöne eingelesene CSV-Zeile, die auch noch so schön gesplittet wurde (split) noch weiter zerlegen -> in eine Zweierkombination?

Überlegung: Welches Feld in der CSV ist eindeutig und als Key zu gebrauchen? Wenn keines nicht, nimm die Zeilennummer als Key, steht in $.

Ist das nicht noch viel umständlicher? Sind Arrays da nicht viel angenehmer?

Mit @Arrayname[Position+1] komm ich doch auch direkt an den Array-Inhalt.

Benamste Attribute sind immer besser zu handhaben und besser lesbar als ein stupider numerischer Index [0].

Hotti

--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.