首页 > 代码库 > Perl面向对象编程
Perl面向对象编程
Perl class is a Perl package
首先,创建一个名为Cocoa.pm的包文件(扩展名pm是包的缺省扩展名,意为PerlModule)。一个模块就是一个包,一个包就是一个类。在做其它事之前,先加入“1;”这样一行,当你增加其它行时,记住保留“1;”为最后一行。这是Perl包的必需条件,否则该包就不会被Perl处理。
其次,我们往包里添加方法使之成为一个类。第一个需添加的方法是new(),它是创建对象时必须被调用的,new()方法是对象的构造函数。
构造函数是类的子程序,它返回与类名相关的一个引用
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; \\返回值指向该引用 }从new()返回后,$self引用被销毁,但是调用函数保存了对该哈希表 的引用,所以该哈希表的引用数不会为零。从而使Perl在内存中保存该哈希表
#!/usr/bin/perl push(@INC,‘pwd‘); use person; my $cup = new person("Tom","man");
注释
第二行\\将当前目录加到路径寻找列表@INC中,
或者push(@INC,dirname(__FILE__)) 使用到File::Basename模块
第三行\\告诉Perl在@INC路径寻找文件person.pm并包含到解析的源文件拷贝中。
第四行\\或者my $cup = person->new("Tom","man"); person::new("Tom","man");
注意:
一定要在构造函数中初始化变量;
一定要用my函数在方法中创建变量;
一定不要在方法中使用local,除非真的想把变量传递给其他子程序;
一定不要在类模块中使用全局变量。
Perl method is a Perl subroutine
Perl面向对象编程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。