サブルーチンの質問です。

&hoge($bar);
&hoge($bar{'id'});
&hoge($bar[0]);

sub hoge {
 return $_[0];
}

真ん中の例のように、ハッシュを入れると値が帰ってきません。このような場合に、値を返すようにするには、どう記述するのが
一般的なのでしょうか?(試していませんが、一番下の配列の1要素を入れてもダメかもしれない?)