それさ初期化して無いやつのリファレンス渡してない?
my $str = '';
ってやってるのと
my $str;
は中身違うよ