Perl 教程 之 Perl 面向对象 2

简介: Perl的面向对象编程涉及两种实现:匿名哈希表引用和数组引用。对象是类数据的引用,类是包含方法的Perl包。方法是接收类名作为首参的子程序。`bless()`函数用于构造对象。类定义为包,提供独立命名空间,文件通常以`.pm`结尾。例如:```markdown.package Person # 类代码....end```简而言之,Perl的OOP基于引用,类是包,方法是子程序,`bless`构造对象,类定义创建命名空间。

Perl 教程 之 Perl 面向对象 2

Perl 面向对象

Perl 中有两种不同地面向对象编程的实现:

一是基于匿名哈希表的方式,每个对象实例的实质就是一个指向匿名哈希表的引用。在这个匿名哈希表中,存储了所有的实例属性。

二是基于数组的方式,在定义一个类的时候,我们将为每一个实例属性创建一个数组,而每一个对象实例的实质就是一个指向这些数组中某一行索引的引用。在这些数组中,存储着所有的实例属性。

面向对象基础概念

面向对象有很多基础概念,这里我们接收三个:对象、类和方法。

对象:对象是对类中数据项的引用。.

类:类是个Perl包,其中含提供对象方法的类。

方法:方法是个Perl子程序,类名是其第一个参数。

Perl 提供了 bless() 函数,bless 是用来构造对象的, 通过 bless 把一个引用和这个类名相关联,返回这个引用就构造出一个对象。

类的定义

一个类只是一个简单的包。

可以把一个包当作一个类用,并且把包里的函数当作类的方法来用。

Perl 的包提供了独立的命名空间,所以不同包的方法与变量名不会冲突。

Perl 类的文件后缀为 .pm。

接下来我们创建一个 Person 类:

package Person;
类的代码范围到脚本文件的最后一行,或者到下一个 package 关键字前。

目录
相关文章
|
IDE Ubuntu Java
百度搜索:蓝易云【Ubuntu快速搭建单步调试openjdk环境】
现在,你已经成功在Ubuntu上搭建了OpenJDK的单步调试环境,可以使用Eclipse IDE方便地进行Java程序的调试。请注意,Eclipse IDE提供了丰富的调试功能,使得调试过程更加高效和准确。
145 0
|
人工智能 Devops 测试技术
软件质量工程的关键实践
软件质量工程的关键实践
314 0
|
安全 网络安全 网络虚拟化
这40个网络工程师必知术语,背上!
【7月更文挑战第26天】
886 11
这40个网络工程师必知术语,背上!
|
自然语言处理 算法 开发工具
ModelScope Release Notes 2024-08
ModelScope社区八月上新!平台与社区一系列新功能对外开放,为广大开发者提供一系列新特性与更丰富的功能,欢迎广大开发者使用反馈,与我们共建ModelScope开源社区!
|
程序员 C语言 C++
【C++】《黑马程序员C++》课程笔记总结
【C++】《黑马程序员C++》课程笔记总结
【C++】《黑马程序员C++》课程笔记总结
|
JSON Java 数据格式
实现自定义序列化和反序列化控制的5种方式
实现自定义序列化和反序列化控制的5种方式
|
设计模式 PHP 开发者
PHP在Web开发中的平台优势与未来展望###
【10月更文挑战第17天】 本文探讨了PHP作为服务器端脚本语言在Web开发领域的持久魅力与独特优势,从其易于学习、成本效益高、强大社区支持到灵活的框架生态,展现了PHP为何能在全球网站开发中占据重要地位。同时,文章也展望了PHP在未来技术趋势下,如云计算、微服务架构中的发展潜力,强调持续创新对于保持其竞争力的重要性。 ###
121 2
|
数据可视化
新建论文三线表模板,一键格式刷(包含word和latex版本)
新建论文三线表模板,一键格式刷(包含word和latex版本)
2522 0
|
数据采集 Python
matlab疲劳驾驶检测项目,Python高级面试framework
matlab疲劳驾驶检测项目,Python高级面试framework
|
存储 弹性计算 运维
阿里无影云电脑价格多少钱,阿里无影云电脑适合什么人群?
阿里无影云电脑价格多少钱,阿里无影云电脑适合什么人群?阿里云无影云电脑可用于高数据安全管控、高性能计算等要求的金融、设计、视频、教育等领域,适用于多种办公场景,如远程办公、多分支机构、安全OA、短期使用、专业制图等
589 0