Thread Hash values berechnen (8 answers)
Opened by perl-novice at 2013-04-15 23:21

Britzel
 2013-04-16 14:51
#167086 #167086
User since
2012-10-02
20 Artikel
BenutzerIn
[default_avatar]
Hi.
Naja, das hat ja nun nix mehr mit der ursprünglichen Aufgabe zu tun (Durchschnittswerte errechnen usw.). Aber egal.

Der naive Ansatz wäre:
Datei_1 einlesen in einen hash_1, key ist der String, value der Zahlenwert.
Dito für Datei_2 in hash_2.

Dann legst Du einen dritten, leeren hash an.

Unter der Annahme das die Mengen aller Namen aus beiden Dateien identisch sind, iterierst Du über die keys von hash_1, verwendest diesen key um value_1 und value_2 als anonymes array in den dritten hash zu stecken, mit eben diesem key.

Das ist etwas speicherintensiv, sollte aber problemlos und schnell gehen. Und das liesse sich sicher noch anders machen und optimieren, z.B. ist der dritte Hash in Hinsicht auf das benötigte Ausgabeformat vielleicht nicht das Richtige und liesse sich besser gestalten.

Sollten die Mengen der Namen der beiden Dateien nicht gleich sein, müsstest Du die Gesamtmenge bilden indem Du über beide Ausgangs-Hashes iterierst und leere Valeus bei dem einen oder anderen zulässt. Dazu gibt es sehr leistungsfähige Module auf CPAN (List::*).

Gruß,
Britzel

P.S.:
Der Titel "Hash Values berechnen" ist in der Tat irreführend. Unter einem hash-Value bezeichnet man allgemein, unabhängig von Perl, das Resultat einer Hashfunktion wie "MD5" oder so.

View full thread Hash values berechnen