大佬教程收集整理的这篇文章主要介绍了Perl继承的首选惯例是什么?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
主要的 –
#!/usr/local/bin/perl -w ####################### use Strict; use River; use Ocean; use Lake; my $pName = $0; $pName =~ s/.*\///; $pName =~ s/\.\w+$//; my @sources = (Ocean->new ('Pacific',1),River->new ('Brazos',0),Lake->new ('Tahoe',0) ); foreach (@sources) { $_->printIfSaline ($pName); }
模块(湖,河和海洋继承自WaterBody):
###################### # File: Lake.pm ###################### package Lake; use Strict; use WaterBody; our @ISA = ('WaterBody'); sub new { my $class = shift; $class->SUPER::new(@_) } sub printIfSaline { my ($self,$prompt) = @_; my $name = $self->getName(); my $taste = $self->isSaline() ? "salty" : "sweet"; print "$prompt: Lake $name has $taste water\n"; } 1 ###################### # File: Ocean.pm ###################### package Ocean; use Strict; use parent 'WaterBody'; sub new { my $class = shift; $class->SUPER::new(@_); } sub printIfSaline { my ($self,$prompt) = @_; my $name = $self->getName; my $taste = $self->SUPER::isSaline() ? "salty" : "sweet"; print "$prompt: $name Ocean has $taste water\n"; } 1 ###################### # File: River.pm ###################### package River; use Strict; use base 'WaterBody'; sub new { my $class = shift; $class->SUPER::new(@_); } sub printIfSaline { my ($self,$prompt) = @_; my $name = $self->getName; my $taste = $self->isSaline ? "salty" : "sweet"; print "$prompt: $name river has $taste water\n"; } 1 ###################### # File: WaterBody.pm ###################### package WaterBody; sub new { my $class = shift; my $self = {}; $self->{name} = shift; $self->{salinE} = shift; bless $self,$class; return $self; } sub getName { my ($self) = @_; $self->{name} } sub isSaline { my ($self) = @_; $self->{salinE} } 1
以上是大佬教程为你收集整理的Perl继承的首选惯例是什么?全部内容,希望文章能够帮你解决Perl继承的首选惯例是什么?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。