TWクラブ【BloodyRosary】@12.plライブラリとpmモジュール
require を使ってライブラリを読み出す(別の.plファイルを読み出すようなイメージ。サブルーチン読み出し用かな
注意: requireするソースの最後の行には必ず 1; を置く(真を返すためみたい
例
main.pl のソース
require 'hoge.pl';
print hoge(2,3);
hoge.pl のソース
sub hoge {
my $x = shift; shift で引数の1個目を取り出す(次 shift した場合は2個目)
my $y = shift;
return $x * $y;
}
1; 1;を忘れずに
・package宣言がありの場合
main.pl のソース
require 'hoge.pl';
print Hoge::hoge(2,3); パッケージ宣言した場合、パッケージ名とコロン(:)2つを、
変数名やサブルーチン名の前に付け足す。
hoge.pl のソース ↓
package Hoge; Hoge(パッケージ名)
::(コロン2つ)
sub hoge { hoge(サブルーチン名)
my $x = shift; ↓
my $y = shift; hoge::hoge となる
return $x * $y;
}
1;
・package 宣言 + Export の場合
ライブラリ側で package 宣言した上で、サブルーチンを Export します。
Export するとこで、メインルーチンで「Hoge::hoge()」という風に呼び出していたのを、
「hoge()」と書くだけで呼び出すことができるようになります。
main.pl のソース
require 'hoge.pl';
import Hoge; なんかimportが必要
print hoge(2,3);
hoge.pl のソース
package Hoge;
use Exporter; 関数をエクスポートしている箇所
our @ISA = qw(Exporter);
our @EXPORT = qw(hoge);
sub hoge {
my $x = shift;
my $y = shift;
return $x * $y;
}
1;
・毎度 import するのは面倒くさい! となると use が登場
use を使ってモジュールを読み出す(別の.pmファイルを読み出す感じ
use が裏で自動的に import してくれるっぽいので、import文を打つ必要がなくなる。
main.pl のソース
use Hoge;
print hoge(2,3);
Hoge.pm のソース
package Hoge;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw(hoge);
sub hoge {
my $x = shift;
my $y = shift;
return $x * $y;
}
1;
※ちなみに
use Hoge;
と
BEGIN {
require Hoge;
import Hoge;
}
は
同じことをしている。
Perl目次に戻る
別館TOPに戻る
ブログに戻る

Presents by 【BloodyRosary】
Copyrights (C) NEXON Corporation and NEXON Co., Ltd.
All Rights Reserved.