Exporter::@EXPORT_OK

@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