Просто скопируйте это:
my %copy = %$hash;
Если вам нужна другая ссылка, просто разверните исходную ссылку в анонимном хеш-конструкторе:
my $copy = { %$hash };
Для тех, кто интересуется мелкими копиями: такого рода назначение только создает новые значения для клавиш верхнего уровня. Любые значения, которые являются ссылками, останутся теми же ссылками в новом хэше. То есть вы можете заменить значение в новом хеше без изменения исходного хэша. Если вы просто измените значение, например, добавив новый элемент в значение анонимного массива, оба хеша получат изменение, потому что они имеют одну и ту же ссылку. Таким образом, мелкие копии обычно не то, что вы хотите.