Ich bin relativ neu mit Perl und ich habe seit einigen Tagen mit diesem festgefahren. Hoffe, du kannst mir helfen.Kombinieren Hashes mit Arrays für einige Schlüssel
Ich arbeite mit zwei Dateien, die ich vereinfachen, wie ich sie hatte zu verarbeiten vorher:
file_one
mit einer Liste von names
(name_1, name_2, NAME_3 ...) und numbers
(Zahl_1, Zahl_2, NUMBER_3. ..), die jeweils
und file_two
mit einer Liste von numbers
(Zahl_2 und number_6) und items
(item_a, item_b mit Zahl_2 verbunden ist, und item_b, item_c mit number_6 assoziiert)
Meine Idee machen sollte Hashes beider Dateien und kombinieren sie. Der Punkt, an dem ich festhalte, ist, wenn ich der Liste der Elemente in den Hash (Hash eines Arrays) beitreten und sie dann verwenden muss. Der erste Hash funktioniert also gut, aber der zweite hat das Problem.
Ich versuchte mit push (@{ $hash2{$numbers} }, $items)
, aber dann weiß ich nicht, wie man es mit dem anderen wegen der Referenz, die ich verwendete, kombiniert.
Die letzte Aufgabe wäre, zwei Namen zu vergleichen, um zu erhalten, welche Elemente sie teilen. Und es wäre großartig, wenn es nur mit Perl gemacht werden könnte und möglichst keine Module verwenden würde.
Vielen Dank
Das Einfügen eines Ausschnitts der beiden Dateien wäre sehr hilfreich, um das Problem zu verstehen. Sie müssen keine Formatierung vornehmen, markieren Sie sie einfach und drücken Sie '{}' für ein Codebeispiel. – Schwern
Ein Beispiel ist immer besser als eine Beschreibung, solange Sie eine ganze Reihe von Fällen anzeigen. * "file_one" mit einer Liste von Namen (name_1, name_2, name_3 ...) und Nummern (number_1, number_2, number_3 ...) bzw. "* ** Schwern **, unten, scheint ziemlich sicher in seiner Interpretation von Ihrem Wörter, aber ich habe meine Zweifel – Borodin
Es gibt keine Möglichkeit, eine Tabelle in Markdown zu erstellen. Die beste Option wäre das Kopieren und Einfügen mehrerer Zeilen Ihrer Datendateien in Ihre Frage. Wenn Sie alle Zeilen um vier Leerzeichen einrücken (was Sie tun können, indem Sie alle Zeilen markieren und * Strg-K * drücken), werden sie vorformatiert angezeigt. – Borodin