perl use base 代替 @ISA

來源:互聯網
上載者:User
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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.