tl;dr : デフォルトの代わりに何もエクスポートしないように指示されています。
長いバージョン:
File::Find には がour @EXPORT = qw(find finddepth);
あるため、これらのサブはデフォルトでエクスポートされます。モジュールを使用しただけで、それをエラーと呼ぼうとするとfind
、正しい引数を渡さなかったfind
のにfind
存在するためです。
quentin@workstation:~ # perl
use File::Find;
find();
no &wanted subroutine given at /Users/david/perl5/perlbrew/perls/perl-5.16.1/lib/5.16.1/File/Find.pm line 1064.
ステートメントでリストを渡すuse
と、デフォルトが上書きされ、要求したサブルーチンのみがエクスポートされます。空のリストは、何もエクスポートされfind
ず、存在しないためエラーになることを意味します。そのような:
quentin@workstation:~ # perl
use File::Find ();
find();
Undefined subroutine &main::find called at - line 2.