Как я могу использовать хэши в качестве аргументов для подпрограмм в Perl?

Меня попросили изменить существующий код, чтобы добавить некоторые дополнительные функции. Я искал в Google и не могу найти ответ. У меня есть кое-что на этот счет ...

%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
}

Я получаю следующие ошибки:

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.

Строки 85 и 86 - это первые две строки в подпрограмме, а 124 и 143 - это место, где я получаю доступ к хэшам. Когда я смотрю на эти ошибки, кажется, что мои хеши неинициализированы. Тем не менее, я могу проверить, что хэши имеют значения. Почему я получаю эти ошибки?

Ответы на вопрос(4)

Ваш ответ на вопрос