最終更新:ID:cso6VU7d6A 2009年09月19日(土) 22:40:50履歴
namespace::autocleanに続くcoolモジュールはこれですね。exportされたモジュールは外部からは参照できなくなっています。
B::Hooks::EndOfScopeを使ったcoolモジュール。
dumper()という関数を、AutoCleanを使って作成、sup()という関数を普通に作成しています。
package MyDumper; use Exporter::AutoClean; use Data::Dumper; sub import { my $class = shift; my $caller = caller; Exporter::AutoClean->export( $caller, dumper => sub { print Dumper(@_) } , ); *{"$caller\::sup"} = sub { print "sky\n" }; } 1;
MyDumperをuseしています。 debug()という関数ないで、dumper()を利用しています。
package MyTool; use warnings; use strict; use MyDumper; sub debug { dumper(@_); } 1;
dumperを呼ぶとちゃんとエラーになります。
use MyTool; MyTool->sup(); #MyTool->dumper('よべないよこれ。'); # コメントとると、そんな関数はないとエラーになります。 MyTool->debug('これはよべる');
タグ
このページへのコメント
aM7gqJ Thanks-a-mundo for the blog post.Thanks Again. Want more.