免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2042 | 回复: 0
打印 上一主题 下一主题

perl 属性 自定义 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-24 19:31 |只看该作者 |正序浏览
从使用Attribute::Handlers模块开始。
use strict;
use warnings;

use Attribute::Handlers;

sub Loud : ATTR {
    my ($pack, $ref, $code) = @_;
    no warnings 'redefine';
    my $name = *{$ref}{NAME};
    *$ref = sub {
        print "$name begin\n";
        &$code;
        print "$name end\n";
    }
}

sub foo : Loud {
    print "foo working\n";
}

foo;


可以看出用sub attrname : ATTR { } 声明一个属性,然后即可以把这个属性附加在别的变量上了。Loud属性在应用此属性的方法体的前后各加一句调试信息。

属性处理函数通过参数得到环境信息(即属性被用在什么地方哪个变量上),具体参数定义可参考模块文档。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP