perl面向对象
来源:
http://www.cnblogs.com/itech/archive/2012/08/21/2649580.html
sub UNIVERSAL::log()
{
my($self,$msg)=@_;
print "$self: $msg\n";
}
package Critter;
sub new { bless {} }
如果你希望用户不仅能够用 "CLASS->new()" 这种形式来调用你的构造函数,还能够以 "$obj->new()" 这样的形式来调用的话,那么就这么做:
sub new {
my $this = shift;
my $class = ref($this) || $this; #ref支持了“$obj->new()”形式的调用(感觉是获得类名)
my $self = {};
bless $self, $class;
$self->initialize();
return $self;
}
一个方法就是一个简单的子程序
my $fred = Critter->find("Fred");
$fred->display("Height", "Weight");
my $fred = Critter::find("Critter", "Fred");
Critter::display($fred, "Height", "Weight");
简单示例
简单示例
、说明
本程序演示了在Perl中如何进行面向对象编程:演示程序包含两个文件:person.pl 和 person.pm,把 person.pl 和 person.pm 放在当前目录下,运行"perl person.pl"即可以看到结果。person.pm定义了名为person的类。person.pl中创建了person类的实例,并测试了person的成员方法。 、person.pm的内容
#!/usr/bin/perl -w
package person;
use strict; sub new {
my $class = shift();
print("CLASS = $class\n");
my $self = {};
$self->{"name"} = shift();
$self->{"sex"} = shift();
bless $self, $class;
return $self;
} sub getName {
my ($self) = @_;
return $self->{"name"};
} sub setName {
my ($self, $name) = @_;
$self->{"name"} = $name;
} sub getSex {
my ($self) = @_;
return $self->{"sex"};
} sub setSex {
my ($self, $sex) = @_;
$self->{"sex"} = $sex;
} 、person.pl的内容
#!/usr/bin/perl -w
use strict;
use person; sub main()
{
my $tom = person->new("Tom", "male");
my $kiss = person->new("Kiss", "female");
my @persons = ($tom, $kiss);
for my $p (@persons) {
printf("NAME: %s\tSEX: %s\n", $p->getName(), $p->getSex());
}
} &main(); 、程序运行结果
CLASS = person
CLASS = person
NAME: Tom SEX: male
NAME: Kiss SEX: female
http://bbs.chinaunix.net/thread-980909-1-1.html
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=770196
perl面向对象的更多相关文章
- Perl 面向对象编程的两种实现和比较:
<pre name="code" class="html">https://www.ibm.com/developerworks/cn/linux/ ...
- Perl面向对象(1):从代码复用开始
官方手册:http://perldoc.perl.org/perlobj.html 本系列: Perl面向对象(1):从代码复用开始 Perl面向对象(2):对象 Perl面向对象(3):解构--对象 ...
- Perl面向对象(2):对象
本系列: Perl面向对象(1):从代码复用开始 Perl面向对象(2):对象 Perl面向对象(3):解构--对象销毁 第3篇依赖于第2篇,第2篇依赖于1篇. 已有的代码结构 现在有父类Animal ...
- Perl面向对象(3):解构——对象销毁
本系列: Perl面向对象(1):从代码复用开始 Perl面向对象(2):对象 Perl面向对象(3):解构--对象销毁 第3篇依赖于第2篇,第2篇依赖于1篇. perl中使用引用计数的方式管理内存, ...
- perl 面向对象编程
今天看到一个perl面向对象编程的例子,充分体现了如何对数据进行封装: 自己模仿写一个读取配置文件的例子, 配置文件的内容如下 samtools_binary = /usr/bin/samtools ...
- perl 面向对象 use base
1.XXX.pm 文件里面的第一行要是:package XXX: 2.要有构造函数 sub new,实现如下: sub new { my $class = shift; # Get the reque ...
- perl 面向对象demo
Vsftp:/root/perl/17# cat Critter.pm package Critter; sub new { my $self = {}; my $invocant = shift; ...
- perl 面向对象 new方法
[root@wx03 test]# cat Scan.pm package Scan; sub new{ my $class = shift; my $self={ 'a'=>11, 'b'=& ...
- 基于perl面向对象开发的微信机器人
<pre name="code" class="html">[root@wx03 lib]# ls -ltr total 40 -rw-r--r-- ...
随机推荐
- GIAC全球互联网架构大会——互联网技术架构未来
GIAC全球互联网架构大会是高可用架构技术社区推出的面向架构师.技术负责人及高端技术从业人员的技术架构大会.中国拥有全球最大的互联网用户及移动互联网用户,如何使用合适的架构来搭建互联网系统,是每一个互 ...
- 【Python@Thread】threading模块
theading模块的Thread类 属性: name 线程名 ident 线程标识符 daemon 布尔值,标示是否为守护线程 方法: __init__(target=None, name=Non ...
- jquery makearray()使用
makearray(),转换一个类似数组的对象成为真正的JavaScript数组.首先看看jquery中array的定义 makeArray: function( arr, results ) { v ...
- hdu_5894_hannnnah_j’s Biological Test(打表找规律)
题目链接:hdu_5894_hannnnah_j’s Biological Test 题意: 有n个不同的位置围成一个圈,现在要安排m个人坐,每个人至少的间隔为k,问有多少种安排 题解: 先打表找规律 ...
- [转]整理jquery使用好习惯
1.选择器Selector的使用 1)使用id定位性能最好 1.$("#id") 2)使用标签名定位,性能其次 1.$("p"),$("div ...
- Python库 - import matplotlib.pyplot as plt 报错问题
为了避免各种问题,请使用最新的2.7.13安装文件 1.先设置好环境变量 在path变量中设置好以下路径: C:\Python27\Scripts C:\Python27 2.大部分报错问题 ...
- java抽象类的特点
抽象类 抽象类的特点: 1.抽象类的方法可以是抽象的,也可以是不抽象的. 2.抽象类的方法可以全是抽象的,也可以全是不抽象的. 3.有抽象方法的类必须是抽象类,或者是接口(但是接口的方法定义必须是pu ...
- 查看linux系统版本是32位还是64位
如何查看ubuntu版本是64位还是32位的: 1.# uname -a 如果有x86_64就是64位的,没有就是32位的 2.# uname -mx86_64 3.# archx86_6 如何查看u ...
- dd if=/dev/zero of=的含义是什么?Linux 下的dd命令使用详解
http://blog.sina.com.cn/s/blog_8b5bb24f01016y3o.html 一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指 ...
- AccessToMySql数据库的导入以及java生成.exe文件
一.AccessToMySql 最近做了一个Access数据库导入MySql的小工具,期间遇到诸多问题,这里小计一下. 表名为cur_rec,共有5个字段 比较奇葩的是这个表居然是四个字段的联合主键, ...