perl之UNIVERSAL类和can方法

今天看别人的perl代码,其中定义了几个函数是属于UNIVERSAL的,而且还有几个莫名其妙的没定义的函数can,随便拿个变量就开始调用。

翻翻Perl的文档,其中说到UNIVERSAL是属于perl的关键字,这是一个类,它是所有类的基类。它提供以下几个方法:isa,can。其中isa用来判断变量是否从某个类继承而来,can后面的参数则是一个方法,判断这个方法是否在这个类或者基类中被定义。另外你可以给UNIVERSAL添加新的方法。一旦给它添加了新的方法,所有的class都可以调用。

 

给UNIBERSAL添加新方法的例子:

sub UNIVERSAL::log()        
{        

my($self,$msg)=@_;       

print "$self: $msg\n";       

}

这样就可以在每个类中调用这个函数,并且log之前会把类名打印出来。



本文地址: http://www.bagualu.net/wordpress/archives/581 转载请注明




发表评论

电子邮件地址不会被公开。 必填项已用*标注