千家信息网

如何使用Perl的Perl面向对象编程

发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章主要介绍如何使用Perl的Perl面向对象编程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、模块简介模块(module)就是Perl包(pachage)。Perl中
千家信息网最后更新 2025年11月14日如何使用Perl的Perl面向对象编程

这篇文章主要介绍如何使用Perl的Perl面向对象编程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、模块简介

模块(module)就是Perl包(pachage)。Perl中的对象基于对包中数据项的引用。(引用见第x章引用)。
详见http://www.nease.net/tppmsgs/msgs0.htm#28的perlmod和perlobj。
在用其他语言进行Perl面向对象编程时,先声明一个类然后创建该类的对象(实例),特定类任何对象的行为方式是相同的,由类方法确定,能够通过定义新类或从现存类继承来创建类。已熟悉Perl面向对象编程的人能够在此碰到许多熟悉的术语。Perl一直是个Perl面向对象的语言,在Perl5中,语法略有变动,更规范化了对象的使用。

下面三个定义对理解对象、类和方法在Perl中如何工作至关重要。
◆类是个Perl包,其中含提供对象方法的类。
◆方法是个Perl子程式,类名是其***个参数。
◆对象是对类中数据项的引用。.

二、Perl中的类

再强调一下,一个Perl类是仅是个包而已。当您看到Perl文档中提到"类"时,把他看作"包"就行了。Perl5的语法能够创建类,假如您已熟悉C,那么大部分语法您已掌控了。和Perl4不同的概念是用双冒号(::)来标识基本类和继承类(子类)。
Perl面向对象的一个重要特性是继承。Perl中的继承特性和其他Perl面向对象语言不完全相同,他只继承方法,您必须用自己的机制来实现数据的继承。
因为每个类是个包,所以他有自己的名字空间及自己的符号名关联数组(详见第x章关联数组),每个类因而能够使用自己的单独符号名集。和包的引用结合,能够用单引号(\\')操作符来定位类中的变量,类中成员的定位形式如:$class\\'$member。在Perl5中,可用双冒号替代单引号来获得引用,如:$class\\'$member和$class::$member相同。.

三、创建类

本节介绍创建一个新类的必要步骤。下面使用的例子是创建一个称为Cocoa的简单的类,其功能是输出一个简单的Java应用的源码的必要部分。放心,这个例子无需您有Java的知识,但也不会使您成为Java专家,其目的是讲述创建类的概念。
首先,创建一个名为Cocoa.pm的包文档(扩展名pm是包的缺省扩展名,意为PerlModule)。一个模块就是个包,一个包就是个类。在做其他事之前,先加入"1;"这样一行,当您增加其他行时,记住保留"1;"为***一行。这是Perl包的必需条件,否则该包就不会被Perl处理。.

四、构造函数

Perl面向对象中构造函数是类的子程式,他返回和类名相关的一个引用。将类名和引用相结合称为"祝福"一个对象,因为建立该结合的函数名为bless(),其语法为:
blessYeReference[,classname]
YeReference是对被"祝福"的对象的引用,classname是可选项,指定对象获取方法的包名,其缺省值为当前包名。
创建一个构建函数的方法为返回已和该类结合的内部结构的引用。如..

subnew{  my$this={};#Createananonymoushash,and#selfpointstoit.  bless$this;#ConnectthehashtothepackageCocoa.  return$this;#Returnthereferencetothehash.  }

五、方法

Perl类的方法只但是是个Perl子程式而已,也即通常所说的成员函数。Perl面向对象中Perl的方法定义不提供任何特别语法,但规定方法的***个参数为对象或其被引用的包。Perl有两种方法:静态方法和虚方法。
静态方法***个参数为类名,虚方法***个参数为对象的引用。方法处理***个参数的方式决定了他是静态的还是虚的。静态方法一般忽略掉***个参数,因为他们已知道自己在哪个类了,构造函数即静态方法。虚方法通常首先把***个参数shift到变量self或this中,然后将该值作普通的引用使用。.

六、方法的输出

假如您现在想引用Cocoa.pm包,将会得到编译错误说未找到方法,这是因为Cocoa.pm的方法还没有输出。输出方法需要Exporter模块,在包的开始部分加上下列两行:
requireExporter;
@ISA=qw(Exporter);
Perl面向对象中Perl类的继承是通过@ISA数组实现的。@ISA数组无需在任何包中定义,然而,一旦他被定义,Perl就把他看作目录名的特别数组。他和@INC数组类似,@INC是包含文档的寻找路径。@ISA数组含有类(包)名,当一个方法在当前包中未找到时就到@ISA中的包去寻找。@ISA中还含有当前类继承的基类名。

类中调用的任何方法必须属于同一个类或@ISA数组定义的基类。假如一个方法在@ISA数组中未找到,Perl就到AUTOLOAD()子程式中寻找,这个可选的子程式在当前包中用sub定义。若使用AUTOLOAD子程式,必须用useAutoload;语句调用autoload.pm包。AUTOLOAD子程式尝试从已安装的Perl库中装载调用的方法。假如AUTOLOAD也失败了,Perl再到UNIVERSAL类做***一次尝试,假如仍失败,Perl就生成关于该无法解析函数的错误。..

七、方法的调用

调用一个对象的方法有两种方法,一是通过该象的引用(虚方法),一是直接使用类名(静态方法)。。

以上是"如何使用Perl的Perl面向对象编程"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

方法 对象 数组 函数 参数 程式 类名 静态 语法 编程 模块 输出 相同 就是 数据 文档 语言 重要 必要 一行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 竹溪信息软件开发技术指导 自动化设备软件开发平台 四川工院计算机网络技术 乡镇 网络安全自查总结 长沙棋牌软件开发公司有哪些 泰安泰盈的软件开发 域控服务器忘记管理员密码 天津的网络技术公司怎么样 华为rh228服务器 江苏前端软件开发哪家实惠 mysql数据库工程师英文 基于用户密钥自主管理的数据库 数据库中表示主题检索的是 云服务器怎么越来越火 什么是网络安全法简说 网络安全角度看薇娅 南昌市八诚互联网络科技 加强信息网络安全顶层设计 华为网络技术工程师职责 网络安全新的 饥荒服务器管理员能用代码吗 青岛网络安全研究院 市北 威海软件开发哪家便宜 海南应该软件开发报价 电脑信息网络安全 网络工程和网络安全工程师 监管软件开发的部门是那个部门 网络安全问题用英语作文 怎么样使用手机卡搭建服务器 查询数据库中字段
0