@EXPORTは、無条件で公開されたが、@EXPORT_OKは、use モジュールパッケージ名の後の引数に指定した関数名と同じものなら公開される。
Exporter - 関数をエクスポートする - Perlプログラミング入門ゼミ - Perlでテキスト処理・Linuxサーバー管理・Webシステム開発
@EXPORT_OKに、public_method_3が入っている。
#!/usr/bin/perl # CustomModuleをuseで読み込む. use CustomModule; # public_method_3を呼ぶ. public_method_3();
このままだと、
[bg1@dti-vps-srv93 Exporter]$ vi Exporter.pl [bg1@dti-vps-srv93 Exporter]$ perl Exporter.pl This is BEGIN. Undefined subroutine &main::public_method_3 called at Exporter.pl line 7. [bg1@dti-vps-srv93 Exporter]$
公開されてないのでエラー。
引数に公開したい関数名を渡すと、
[bg1@dti-vps-srv93 Exporter]$ vi Exporter.pl [bg1@dti-vps-srv93 Exporter]$ perl Exporter.pl This is BEGIN. public_method_3. [bg1@dti-vps-srv93 Exporter]$
使える。
Sample/perl/Exporter/EXPORT_OK/src/Exporter at master · bg1bgst333/Sample · GitHub