<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. HtmlAgilityPack 抓取页面的乱码处理

    HtmlAgilityPack 抓取页面的乱码处理 用来解析 HTML 确实方便.不过直接读取网页时会出现乱码. 实际上,它是能正确读到有关字符集的信息,怎么会在输出时,没有取到正确内容. 因此,读两 ...

  2. Python基础 3----文件和网络

    1 Python文件IO 1 标转的输入和输出 print 方法:输出数据到标准的输出 raw_input 方法:标准的输入 2 file文件类 读文件 f = file(文件名, 模式) 有5种模式 ...

  3. Handler总结

    一.整体工程图 二.activity_handler.xml <?xml version="1.0" encoding="utf-8"?> < ...

  4. QQ邮箱添加公司邮箱步骤

    经领导提示,发现QQ邮箱可以添加公司邮箱.这样,在有同事出差在外的时候,可以通过QQWEB邮箱,即可收发公司邮箱,不必安装邮箱客户端软件. 仅供各位同事参考使用. 1.打开QQ邮箱 2.点击其他邮箱, ...

  5. U3D学习笔记

    1.向量的点乘.叉乘以及归一化的意义 1)点乘描述了两个向量的相似程度,结果越大两向量越相似,还可表示投影 2)叉乘得到的向量垂直于原来的两个向量 3)标准化向量:用在只关系方向,不关心大小的时候 用 ...

  6. Android访问网络

    Android中访问网络用的是HttpClient的方式,即Apache提供的一个jar包.安卓中继承了改jar包,所以安卓adt中不需要专门import该jar,直接就可以使用. 以下是MainAc ...

  7. USACO Preface Numbering 构造

    一开始看到这道题目的时候,感觉好难 还要算出罗马的规则. 但是仔细一看,数据规模很小, n 只给到3500 看完题目给出了几组样例之后就有感觉了 解题方法就是: n的每个十进制数 转换成相应的罗马数字 ...

  8. iOS字符串NSString中去掉空格(或替换为某个字符串)

    http://blog.sina.com.cn/s/blog_6f29e81f0101qwbk.html [问题描述]       今天请求服务器返回的字段中含有空格,这空格是服务器开发人员不小心往数 ...

  9. NET Core 1.0

    VS Code从零开始开发调试.NET Core 1.0 使用VS Code 从零开始开发调试.NET Core 1.0. .NET Core 是一个开源的.跨平台的 .NET 实现. VS Code ...

  10. 17.1.1.7 Setting Up Replication with New Master and Slaves 设置复制对于新的Master和Slaves:

    17.1.1.7 Setting Up Replication with New Master and Slaves 设置复制对于新的Master和Slaves: 最简单和最直接的方法是设置复制用于使 ...