perl 继承实现

35 篇文章 30 订阅 ¥39.90 ¥99.00
这篇博客介绍了Perl中如何实现对象继承。通过示例代码展示了`Critter`基类和`Horse`子类的创建,详细解释了`spawn`方法以及`use base`和`@ISA`数组在继承中的作用。文中提到了两种等价的继承写法,并给出了运行示例。
摘要由CSDN通过智能技术生成
继承例子:
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/;
}
这两种写法是等价

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值