Wie kann ich Hashes als Argumente für Unterprogramme in Perl verwenden?

Ich wurde gebeten, vorhandenen Code zu ändern, um zusätzliche Funktionen hinzuzufügen. Ich habe bei Google gesucht und kann die Antwort nicht finden. Ich habe etwas in dieser Richtung ...

%first_hash = gen_first_hash();
%second_hash = gen_second_hash();
do_stuff_with_hashes(%first_hash, %second_hash);

sub do_stuff_with_hashes
{
    my %first_hash = shift;
    my %second_hash = shift;

    # do stuff with the hashes
}

Ich erhalte folgende Fehlermeldungen:

Odd number of elements in hash assignment at ./gen.pl line 85.
Odd number of elements in hash assignment at ./gen.pl line 86.
Use of uninitialized value in concatenation (.) or string at ./gen.pl line 124.
Use of uninitialized value in concatenation (.) or string at ./gen.pl line 143.

Zeile 85 und 86 sind die ersten beiden Zeilen in der Unterroutine, und in den Zeilen 124 und 143 greife ich auf die Hashes zu. Wenn ich diese Fehler nachschlage, scheint dies darauf hinzudeuten, dass meine Hashes nicht initialisiert sind. Ich kann jedoch überprüfen, ob die Hashes Werte haben. Warum erhalte ich diese Fehler?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage