ちと
rentafreeのエラーメッセージ表示がおかしかったんだが、
print "\n".Compress::Zlib::memGunzip($hash{$key});
↑こんな感じの箇所でなぜかハッシュの中身が空にされてた。
変数コピーして、コピーの方解凍するようにした。
Compress::Zlib::memGunzipって引数の変数勝手に空にする?
仕様なのかバグなのかわからんが、
ここで変数が空になって空出力するようになってた。
existsやdefinedは真なんで、変数の中身が空文字列に勝手に書き換えられる。