Thread Array of Hashes aus Datei anlegen (53 answers)
Opened by Flips87 at 2020-02-04 11:19

rosti
 2020-02-04 15:34
#191272 #191272
User since
2011-03-19
3194 Artikel
BenutzerIn
[Homepage]
user image
Quote
sondern aus einer Datei soll ein Array erzeugt werden, dass für jede Zeile einen Hash enthält.



Genau das ist, was man unter Serialisierung versteht. Natürlich kann man Hashes auch zeilenweise in Dateien ablegen und mit textlichen Mitteln strukturieren z.B. so:

Code: (dl )
1
2
key;value;key;value
key,value,key,value


oder so:

Code: (dl )
1
2
key=value;key=value
key=value,key=value


und somit eine Frage der Delimiter (Trennzeichen) ist. Daß in Perl ein Hash auch ein Array sein kann, ist ein weiterer Aspekt. Nun könnte man die Zeilennummern auch als Key für jeden Hash betrachten. Man kann es aber auch so machen mit eigenständigen Schlüsseln für jeden Hash als Entity:

Code: (dl )
1
2
ent.att = val
entity.attribute = value


was beim Deserialisieren zu folgender Datenstruktur führt, einem Hash of Hashes:

Code (perl): (dl )
1
2
   ent    => { att       => val },
   entity => { attribute => value }


Und für welchen Serializer man sich letztendlich entscheidet ist eine Frage der Zweckmäßigkeit und vielleicht auch eine Frage der Kreativität. Und damit ninsgesamt nicht einmal eine Frage von Perl, denn Serializer gibt es, seit Niklas Wirth den Dateibegriff als Sequenz geprägt hat.

Man sollte sich jedoch nicht von vornherein festlegen, daß man Hashes in Dateien zeilenweise ablegt.

MFG

PS; Parse eine ini Datei mit Config::Tiny

Code: (dl )
1
2
3
4
5
[ent]
att = val

[entity]
attrubute = value


Das liefert auch einen Hash of Hashes.


.
Last edited: 2020-02-04 15:42:22 +0100 (CET)

View full thread Array of Hashes aus Datei anlegen