アットウィキロゴ

perl > pkg

パッケージとモジュール

パッケージとモジュールの扱い方について。

パッケージ

パッケージは、Javaでいうクラスに近いかも。
オブジェクトという意味で近いのではなく、変数のスコープとして近い。
1つの変数利用可能なスコープと考えていいかも。
今までは main パッケージを暗黙的に使っていた。

パッケージの定義の仕方
package hoge;
次のパッケージが出てくるまでは、hogeパッケージの範囲となる。

パッケージの使い方
require "pkg1.pl";
これでpkg1.pl をまず読み込む。
&pkg1::fun(); # pkg1のfun()を呼び出し。
$pkg1::name;  # pkg1の$nameを呼び出し。 
パッケージ名を付けないと、mainパッケージから呼ぶことになる。

モジュール

モジュールは、Javaで言うところのライブラリ。

モジュールの利用のしかた。
use Hoge;
モジュール名は基本大文字スタート。
use は読み込み時にコンパイルが行われる。
require は実行時にコンパイルが行われる。
use Hoge qw/fun1 fun2/;
とすると、Hogeの中のfun1 と fun2 しか読み込まれない。

モジュールの作り方。
拡張子は.pm。

package Hoge;

use Exporter;
@ISA = (Exporter);
@EXPORT = qw(fun1);

sub fun1 {
 # 処理
}
ファイル名はこのパッケージ名にあわせよう。
@EXPORT のところを、@EXPORT_OK にしたら、明示的にuse しない限りつかえない。
@EXPORT_FAIL にしたら、読み込めない。

環境によって、切り替えるなどで使う。

タグ:

+ タグ編集
  • タグ:
最終更新:2011年07月31日 18:41