2019独角兽企业重金招聘Python工程师标准>>>

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

转载于:https://my.oschina.net/u/347414/blog/305555

Perl面向对象编程相关推荐

  1. Perl面向对象编程入门

    因为项目原因,接触了一门新的语言--Perl.初识之时,觉得它既像bash shell,又像C语言.因为有C/C++/Java以及shell基础,所以这门语言上水并没有很困难,但是它的面向对象还是给了 ...

  2. 第十三章 Perl的面向对象编程

    第十三章 Perl的面向对象编程 by flamephoenix 一.模块简介 二.Perl中的类 三.创建类 四.构造函数 实例变量 五.方法 六.方法的输出 七.方法的调用 八.重载 九.析构函数 ...

  3. python 第13章:面向对象编程

    2019独角兽企业重金招聘Python工程师标准>>> 1. 类是对象的定义,而实例是"真正的产物",它存放了类中所定义的对象的具体信息 方法:方法为类的属性,除 ...

  4. 编程的本质--深入理解类型系统/泛型/函数式编程/面向对象编程

    编程语言发展到今天,出现了好多不同的代码编写方式,但不同的方式解决的都是同一个问题,那就是如何写出更为通用.更具可重用性的代码或模块. 1. C语言 C 语言历史悠久,而几乎现在看到的所有编程语言都是 ...

  5. 面向对象编程,设计原则,设计模式

    2019独角兽企业重金招聘Python工程师标准>>> 面向对象编程,设计原则,设计模式 面向对象编程 面向对象编程与面向过程编程的区别 面向对象软件开发的优点 面向对象编程语言 C ...

  6. Object Oriented Programming面向对象编程

    OOP 面向对象编程( Object Oriented Programming)是一种 计算机编程 架构.OOP 的一条基本原则是 计算机程序是由单个能够起到子 程序作用的单元或 对象组合而成.OOP ...

  7. Perl面向对象(2):对象

    本系列: Perl面向对象(1):从代码复用开始 Perl面向对象(2):对象 Perl面向对象(3):解构--对象销毁 第3篇依赖于第2篇,第2篇依赖于1篇. 已有的代码结构 现在有父类Animal ...

  8. perl语言编程 第四版_2020年,5 种 将死的编程语言!

    来源 | 码农网译者 | 小峰 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"piecemea ...

  9. 【面向对象编程】(4) 类的继承,重构父类中的方法

    各位同学好,今天和大家分享一下面向对象编程中,类的三大特征之继承.主要介绍:子类继承父类的基本方法:重写父类的类方法:重构父类的初始化方法:super() 方法.本节主要是单继承,多继承在下一节中介绍 ...

  10. 【面向对象编程】(3) 类之间的交互,依赖关系,关联关系

    各位同学好,今天和大家分享一下面向对象编程中,类之间的交互,类之间的依赖关系和关联关系.有不明白的可见前一章节:https://blog.csdn.net/dgvv4/article/details/ ...

最新文章

  1. Nodejs学习笔记之复制文件
  2. 如何培养自己奇特的创意设计思维?
  3. 在 Mac OS X 下启用超级帐户(root)
  4. 数据备份与数据恢复产品——程序猿的必备品
  5. 睡眠阶段分期——SVM和ELM分别与粒子群算法结合(main)
  6. css建立一个简单的设备登记表,员工登记表格的CSS块
  7. 把期货当现货做,专业投机大局观
  8. 蚂蚁金服凭啥估值超1500亿美元?一文看懂6大核心板块
  9. 信息短信服务器发送失败怎么办,短信发送失败如何设置
  10. 蓝灯鱼AI人工智能、知识产权产品全面升级
  11. 最佳 Maya 免费建模插件!
  12. kali linux 获取ip_Kali Linux常用服务配置教程获取IP地址
  13. mysql 时间添加分钟_在MySQL中为时间添加某些分钟
  14. vb如何实现两台计算机数据包传送,VB学习网站! - PLC论坛 工控网 工控论坛 http://bbs.gkong.com/...
  15. Android学习(运用手机多媒体)
  16. P3964 [TJOI2013]松鼠聚会
  17. spring Security 权限管理
  18. 数据库系统概论学习一
  19. 江西现代职业技术学院单招计算机,江西现代职业技术学院2019年单招录取分数线...
  20. 北美跨境电商平台Wish透露未来一年在华规划

热门文章

  1. linux:文件及目录管理
  2. Pycharm远程调试服务器程序
  3. 力扣-268 丢失的数字
  4. JavaWeb — 获取复选框的值时,要注意不是得到显示的值,而是得到value值
  5. 7-8 jmu-ds-顺序表区间元素删除 (15 分)
  6. MTK平台LCM驱动加载流程
  7. pycharm python3.5 神奇的导入问题
  8. java 23中设计模式
  9. HTMLCSS学习笔记(三)----标签类型转换、样式重置
  10. poj 3678 Katu Puzzle 2-SAT