perl use base 代替 @ISA
2016-05-18 17:45
399 查看
packge Mule; use base ("Horse", "donkey"); # 声明一个超类 它是下面东西的缩写: package Mule; BEGIN { our @ISA = ("Horse", "Donkey"); require Horse; require Donkey; } Horse 类 : [root@wx03 test]# cat Horse.pm package Horse; BEGIN { our @ISA = "Critter"; require Critter; }; sub new { my $invocant = shift; my $class = ref($invocant) || $invocant; my $self = { color => "bay", legs => 4, owner => undef, @_, # 覆盖以前的属性 }; return bless $self, $class; #return $self; }; sub sum1 { $self=shift; my $a=shift; my $b=shift; return $a + $b + 7; }; our @arr=qw/1 2 3 4 5 6 7/; our %h1=(1,2,3,4,5,6,7,8); 1; Critter类: [root@wx03 test]# cat Critter.pm package Critter; sub new { my $self = {}; my $invocant = shift; my $class = ref($invocant) || $invocant; my ($name)=@_; my $self = { "name" =>$name }; bless $self, $class; # Use class name to bless() reference return $self; }; sub sum2 { $self=shift; my $a=shift; my $b=shift; return $a + $b; }; sub fun1 { $self=shift; my $a=shift; my $b=shift; return $a / $b; } 1; [root@wx03 test]# cat t10.pl unshift(@INC,"/root/test"); use Horse;; $ua=Horse->new(); #print "It's an object\n" if UNIVERSAL::isa($ua, 'UNIVERSAL'); $code=Horse->sum1(4,5); print "\$str is $code\n"; $code=Horse->sum2(4,5); print "\$str is $code\n"; [root@wx03 test]# perl t10.pl $str is 16 $str is 9 使用use base 代替: [root@wx03 test]# cat Horse.pm package Horse; use base qw(Critter); sub new { my $invocant = shift; my $class = ref($invocant) || $invocant; my $self = { color => "bay", legs => 4, owner => undef, @_, # 覆盖以前的属性 }; return bless $self, $class; #return $self; }; sub sum1 { $self=shift; my $a=shift; my $b=shift; return $a + $b + 7; }; our @arr=qw/1 2 3 4 5 6 7/; our %h1=(1,2,3,4,5,6,7,8); 1; [root@wx03 test]# cat t10.pl unshift(@INC,"/root/test"); use Horse;; $ua=Horse->new(); #print "It's an object\n" if UNIVERSAL::isa($ua, 'UNIVERSAL'); $code=Horse->sum1(4,5); print "\$str is $code\n"; $code=Horse->sum2(4,5); print "\$str is $code\n"; [root@wx03 test]# perl t10.pl $str is 16 $str is 9
相关文章推荐
- Activity 设置切换动画
- perl use base 代替 @ISA
- perl use base 代替 @ISA
- 排序七部曲之(七)希尔排序
- canvas
- 微博关注我、我关注你数据库该怎么设计
- 关于APP自动化工程的一点小想法
- mysql的日期类型date, datetime, timestamp
- Weak Event模型
- 关于APP自动化工程的一点小想法
- POJ 3580-SuperMemo-splay树
- CentOS 7 下设置DNS
- nginx配置location总结及rewrite规则写法
- 九度-1198:a+b(大数相加)
- Linux下配置Python开发环境vim
- select网络模型知识总结
- C#.NET 大型企业信息化系统 - 防黑客攻击 - SSO系统加固优化经验分享
- wg/wrk: Modern HTTP benchmarking tool
- object-oriented second work
- HDU 3487-Play with Chain-splay