Question

perlのimportで&プロトタイプ関数が使えない  [perl]  [Question]  [bug_or_spec]

解説希望。 よくわかりません。

複数パッケージを含む以下のようなperlスクリプトで(&)プロトタイプ宣言した関数を実行すると、動きません。(Can't call method 'fuga' without a package or object....)

package hoge;
use base 'Exporter';
our @EXPORT = qw/ fuga foo/; 

sub fuga(&){ print $_[0]->();}
sub foo(){ print $_[0];}
1; 
package main;
import hoge;
# 駄目パターン
fuga {'fuga'};
#プロトタイプ宣言(&)してないやつはOK
foo('foo');
#関数として渡すとOK
fuga(sub{'fuga'});

プロトタイプで'&'を指定した場合、subをつけない無名関数(ブロック)を渡せるはずですが、渡せません。

で、package hogeを別ファイルに置くと、動きます。

use 'hoge' 
fuga {'fuga'}; #OK

なんか変だなぁ。

importとuseは違うのかなぁ?

なんか間違ってる?