Я действительно не вижу, что вы пытаетесь сделать здесь. Что вообще означает «эквивалент хеша для map
»? Вы можете использовать map
для хеша просто отлично. Если вы хотите ключи, просто используйте keys
; например "
@msglist = map { "value of $_ is $hash{$_}" } keys %hash
хотя обычно
скажем "значение $ _ равно $ hash {$ _}" ключей% hash;
просто отлично.
Если вы хотите и то и другое, тогда используйте весь хэш.
Что касается задания, что не так с %new_hash = %old_hash
?
У вас есть проблемы с глубоким копированием? Тогда используйте Storable::dclone
.
Хотите ли вы, чтобы ключ и значение были доступны в закрытии одновременно? Затем составьте пару пар с первой картой:
@pairlist = map { [ $_ => $hash{$_} ] } keys %hash
Мне нужно увидеть пример того, что вы хотели бы сделать с этим, но пока я вижу нулевую причину для использования какого-то большого старого модуля вместо базового Perl.