ハッシュ変数ってリファレンスにしないとルーチンに渡せないのですか?
&hoge(%hash);
こうすればリスト形式で渡りますよね?

sub hoge{
my %hash = (@_);

こうすればハッシュが壊れることはないでしょうか?とりあえずテストは成功しましたが、
私の知らないおかしなことが起こる瞬間があると怖いです。