<pre name="code" class="html">[root@wx03 test]# cat Horse.pm
package Horse;
##Horse继承了Critter类,Critter这里是基类或者父类
use base qw(Critter);
sub new {
my $invocant = shift;
my $class = ref($invocant) || $invocant;
my $self = {
color => "bay",
legs => 4,
owner => 'scan',
@_, # 覆盖以前的属性
};
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 Critter.pm
package Critter; sub sum2 {
$self=shift;
my $a=shift;
my $b=shift;
return $a + $b;
}; sub fun1 {
$self=shift;
message::message($self);
}; sub fun2 {
$self=shift;
$var='bosdadada';
return $var;
};
sub on_receive_msg:lvalue{
$self=shift;
$self->{name}="aabbccdd123141242";
$self->{on_receive_msg};
}; our $str="12312";
1; /*******************
[root@wx03 test]# cat t10.pl
unshift(@INC,"/root/test");
use Horse;;
my $ua=Horse->new(); my $str=$ua->fun2();
print $str;
print "\n"; [root@wx03 test]# perl t10.pl
bosdadada 如果去掉Horse类里的继承: package Horse;
#use base qw(Critter);
sub new {
my $invocant = shift; [root@wx03 test]# perl t10.pl
Can't locate object method "fun2" via package "Horse" at t10.pl line 6. 提示找不到fun2方法 /***********************
[root@wx03 test]# cat t10.pl
unshift(@INC,"/root/test");
use Horse;;
my $ua=Horse->new(); my $str=$ua->fun1();
print $str;
print "\n"; [root@wx03 test]# perl t10.pl
Undefined subroutine &message::message called at Critter.pm line 15. 没有use message;: package Critter;
#use message; sub sum2 {
$self=shift;
my $a=shift;
my $b=shift;
return $a + $b;
}; sub fun1 {
$self=shift;
message::message($self);
}; 解决方案: 1):
package Critter;
##继承message类
use base qw/message/; sub sum2 {
$self=shift;
my $a=shift;
my $b=shift;
return $a + $b;
}; sub fun1 {
$self=shift;
$self->message();
}; 2):
package Critter;
use message; sub sum2 {
$self=shift;
my $a=shift;
my $b=shift;
return $a + $b;
}; sub fun1 {
$self=shift;
message::message($self);
# $self->message();
};
												

perl 继承概述的更多相关文章

  1. Java继承概述

    继承概述 : 父类(超类,基类): 子类(派生类): extends 只能继承一个类,Java不支持多重继承: 子类继承父类之后,子类可以调用父类的属性和方法, 也可以重写父类的属性和方法,还可以增加 ...

  2. perl 继承 @ISA

    12.5 类继承 对Perl的对象剩下的内容而言,从一个类继承另外一个类并不需要给这门语法增加特殊的语法,当你调用一个方法的时候, 如果Perl在调用者的包里找不到这个字过程,那么他就检查@ISA数组 ...

  3. perl 继承小例子

    <pre name="code" class="html"><pre name="code" class="ht ...

  4. js 继承概述

    上文讲述过js实现面向对象,一定是能够实现继承的效果的.尽管说非常多的js框架都帮助我们实现了继承的功能.或者说在日常的工作和学习中我们压根就用不到js的继承,可是我们还是须要了解一下js中继承.以方 ...

  5. java的三大特性之一继承概述

    0.继承-----注意事项 00.子类最多只能继承一个父类(指直接继承) 01.java所有的类都是Object的子类 02.JPK6.0中有202个包3777个类,接口,异常,枚举,注释和错误 03 ...

  6. perl 继承写法

    use base (Critter); 和 BEGIN{ require Critter; @ISA=qw/Critter/; } 这两种写法是等价

  7. Perl 的继承

    Perl 类的定义 Perl的一个packag可以作为一个类使用,文件后缀名为.pm,并且把package里的函数当作类的方法来用.如: package Person; 创建和使用对象 大多数程序使用 ...

  8. java7-3 继承

    1.继承概述: 把多个类中相同的内容给提取出来定义到一个类中. 如何实现继承呢? Java提供了关键字:extends 格式: class 子类名 extends 父类名 {} 父类也称为基类.超类: ...

  9. Java笔记(十三)……面向对象III继承(inheritance)

    继承概述 继承概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可. 多个类可以称为子类,单独这个类称为父类或者超类. 子类可以直接访 ...

随机推荐

  1. gdal库的三个使用心得

    作者:朱金灿 来源:http://blog.csdn.net/clever101 最近使用gdal库比较多,就谈谈gdal库的一些使用心得. 第一个是GDALOpen的访问权限参数会影响图像的创建金字 ...

  2. Android百度地图定位

    在谈到百度地图.如今,每个人都知道这个时候应该可以了吧.而更多的字不拉.直接朝话题. 访问百度地图api您必须应用key,应用在这里key不用说,有官方的文件说明如何应用上述key. 在这里,百度地图 ...

  3. json接口相关(建议结合JFinal框架)

    /** * */ package net.wicp.wvqusrtg; import java.util.HashMap; import net.sf.json.JSONArray; import n ...

  4. Jquery中$.ajax()方法参数详解(转)

    转自:http://blog.sina.com.cn/doctor830619 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数, ...

  5. python成长之路——第二天

    cpython:c解释器  .pyc(字节码)——机器码 jpython :java解释器   java字节码   ironpython :C#解释器   C#字节码   .... 上面的:编译完之后 ...

  6. C++ cout 如何保留小数输出

    参考 : http://upliu.net/how-cout-out-2-precision.html 大家都知道用 C 语言中 printf () 函数可以非常方便控制保留 几位小数输出 不过在 C ...

  7. Week12(11月25日)

    Part I:提问 =========================== 1.如何删除一条记录? Part II:理论学习 =========================== 到目前为止,我们考 ...

  8. svn笔记2

    Examining History Your Subversion repository is like a time machine. It keeps a record of every chan ...

  9. RelativeLayout的一些感想

    1.如果只是是3-4个线性,则可以考虑RelativeLayout;多于等于5个还是尽量考虑LinearLayout好 补充:如果要把RelativeLayout作为线性布局的话,可以采用不断设置be ...

  10. iOS 用GDataXMLNode创建和解析XML

    原文地址:http://blog.csdn.net/gf771115/article/details/7718403 NSError *error; //    NSString *path = [[ ...