继承例子:
zjzc01:/root/big2# cat Critter.pm
package Critter;
sub spawn {
my $self = {print "122334456"}; # 指向一个空的匿名散列
bless $self, "Critter"; # 把那个散列作成一个 Critter 对象
return $self; # 返回新生成的 Critter
};
1;
zjzc01:/root/big2# cat Horse.pm
package Horse;
#our @ISA=qw/Critter/;
use base (Critter);
sub new {
my $invocant = shift;
my $class = ref($invocant) || $invocant;
my $self = {
color => "bay",
legs => 4,
owner => undef,
@_, # 覆盖以前的属性
};
return bless $self, $class;
};
1;
zjzc01:/root/big2# cat 3.pl
unshift(@INC,"/root/big2");
require Horse;
use Data::Dumper;
$x2=Horse->spawn;
my $xx= Dumper($x2);
print $xx;
print "\n";
zjzc01:/root/big2# perl 3.pl
122334456$VAR1 = bless( {
'1' => undef
}, 'Critter' );
use base (Critter);
和
BEGIN{
require Critter;
@ISA=qw/Critter/;
}
这两种写法是等价
perl 继承实现
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:perl last 退出循环问题
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
python多态继承
python继承
构造函数 多重继承 Python -
Asterisk::AMI perl 实现
<br /> use Asterisk::AMI;<br /> my $astman = Asterisk::AMI->
perl action subroutine command events