新しいblogに移行しました

新ブログ "All Yout Bugs Are Belong To Ass" に移行しました!

2008-03-05

[Perl]名前空間指定のサブルーチン定義

今更ながら学習したのでメモ。

例えば、My::Moduleというモジュールを作ったとして。
そのモジュールをuseしたら、newとかしないでいきなりメソッドをコールできるようにする方法。ようするにWeb::Scraperとかみたいな感じ。


package My::Module;
use strict;
use warnings;

*{"main\::hoge"} = sub {
print "ヨロレイヒー!\n";
};

1;


このモジュールをuseするスクリプトは、以下のようにすることができる。

use My::Module;
hoge();
exit;


実行結果はこんな感じ。

ヨロレイヒー!


使いかた次第では、ちょっとしたフレームワークの軸にもなりそうかも?

0 件のコメント: