プロトタイプについて質問です。


通常、サブルーチンにプロトタイプを付けて記述し、コードの先頭付近で

 sub Func1( \@ ) ;

とでも書いておき、そのあと実際に呼び出すときは

 Func1( @array );

と書けば自動的に配列のリファレンスが渡されます。
また、このときスカラーなど間違った変数を渡すとエラーとなりますよね?


モジュール HogeHoge.pm のパッケージ HogeHoge 内に同様のサブルーチンを記述したとします。
このモジュールの先頭付近で

 package HogeHoge ;
 sub Func1( \@ );

と書いてみたのですが、うまく機能しているように見えません。
自動的にリファレンスが渡されるわけでも、別の変数を渡した時にエラーが起きるわけでもありません。
書いても書かなくても同じ挙動に見えます。

どのように記述するのが正しいのでしょうか?