Perl 教程 之 Perl 面向对象 3

简介: Perl的面向对象编程涉及两种实现:匿名哈希表引用和数组引用。对象是类(Perl包)中数据项的引用,方法是接收类名或对象作首参的子程序。

Perl 教程 之 Perl 面向对象 3

Perl 面向对象

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

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

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

面向对象基础概念

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

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

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

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

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

创建和使用对象

创建一个类的实例 (对象) 我们需要定义一个构造函数,大多数程序使用类名作为构造函数,Perl 中可以使用任何名字。

你可以使用多种 Perl 的变量作为 Perl 的对象。大多数情况下我们会使用引用数组或哈希。

接下来我们为 Person 类创建一个构造函数,使用了 Perl 的哈希引用。

在创建对象时,你需要提供一个构造函数,它是一个子程序,返回对象的引用。

实例如下:

实例
package Person;
sub new
{
my $class = shift;
my $self = {
_firstName => shift,
_lastName => shift,
_ssn => shift,
};

# 输出用户信息
print "名字:$self->{_firstName}\n";
print "姓氏:$self->{_lastName}\n";
print "编号:$self->{_ssn}\n";
bless $self, $class;
return $self;

}
接下来我们创建一个对象:

$object = new Person( "小明", "王", 23234345);

目录
相关文章
|
人工智能 搜索推荐
阿里语音AI提供了个性化人声定制功能
【2月更文挑战第24天】阿里语音AI提供了个性化人声定制功能
1414 2
|
存储 缓存 自然语言处理
初识华为RazorAttention
RazorAttention是一种静态KV Cache压缩算法,旨在解决长上下文大型语言模型(LLM)中KV缓存占用显存过大的问题。通过基于注意力头的有效视野动态调整KV Cache大小,RazorAttention能够压缩70%的KV Cache,同时保持模型长序列能力几乎无损。该方法保护检索头(包括Echo Head和Induction Head)的KV Cache,确保重要信息不丢失,并对非检索头进行压缩优化。相比在线动态压缩方法,RazorAttention无需实时计算,兼容FlashAttention,显著降低存储与计算开销,为模型部署提供高效解决方案。
|
24天前
|
消息中间件 运维 调度
【分布式】分布式核心组件——分布式事务:2PC、TCC、SAGA、本地消息表、事务消息、最大努力通知以及各方案适用场景
本文系统梳理分布式事务核心知识:从CAP/BASE理论基石出发,对比2PC(强一致)、TCC(高并发同步)、SAGA(长事务)、本地消息表、事务消息、最大努力通知六大方案,涵盖原理、优劣、适用场景及选型决策框架,强调“无银弹”,重在业务匹配与工程落地。
|
10月前
|
安全 算法 Java
Java 多线程:线程安全与同步控制的深度解析
本文介绍了 Java 多线程开发的关键技术,涵盖线程的创建与启动、线程安全问题及其解决方案,包括 synchronized 关键字、原子类和线程间通信机制。通过示例代码讲解了多线程编程中的常见问题与优化方法,帮助开发者提升程序性能与稳定性。
414 0
|
6月前
|
人工智能 前端开发
会议纪要背后的秘密:好的纪要能让会议减少一半
会议开完责任不清、决策模糊?本文分享一个会议纪要AI生成指令,能从混乱的会议讨论中提取决策事项、分配责任人、明确时间节点。支持DeepSeek、通义千问等国产AI,15分钟生成结构完整的专业纪要,把口头约定变成书面契约,让团队协作更透明高效。
750 13
|
6月前
|
人工智能 自然语言处理 安全
2025年工业AI系统公司深度评测:领先企业如何以技术创新驱动制造业智能升级
树根科技工业AI系统,依托“1+2+N”架构,融合生成式与非生成式AI,构建覆盖企业经营与生产制造全链路的智能闭环。凭借根灵大模型、高精度视觉检测与能耗优化等技术突破,实现在装备制造、汽车、船舶等多行业落地,助力企业降本增效。评测显示其系统协同性强、实证效果显著,为制造业智能化升级提供可复制的系统化解决方案。
397 0
|
9月前
|
机器学习/深度学习 大数据 黑灰产治理
刷单?洗钱?别想跑!——用大数据揪出金融世界里的‘老狐狸’
刷单?洗钱?别想跑!——用大数据揪出金融世界里的‘老狐狸’
296 0
|
Linux
Linux经常使用命令汇总和总结
Linux经常使用命令汇总和总结
376 1
|
机器学习/深度学习 人工智能 安全
TPAMI:安全强化学习方法、理论与应用综述,慕工大、同济、伯克利等深度解析
【10月更文挑战第27天】强化学习(RL)在实际应用中展现出巨大潜力,但其安全性问题日益凸显。为此,安全强化学习(SRL)应运而生。近日,来自慕尼黑工业大学、同济大学和加州大学伯克利分校的研究人员在《IEEE模式分析与机器智能汇刊》上发表了一篇综述论文,系统介绍了SRL的方法、理论和应用。SRL主要面临安全性定义模糊、探索与利用平衡以及鲁棒性与可靠性等挑战。研究人员提出了基于约束、基于风险和基于监督学习等多种方法来应对这些挑战。
487 2
|
物联网 Unix Linux
操作系统的演变:从单任务到多任务再到现代并发
操作系统作为计算机的核心软件,其设计和架构的演变反映了计算需求和技术的进步。本文将带领读者穿越时间线,探索操作系统从最初的单任务处理,发展到多任务处理,直至当代复杂的并发和分布式处理系统的历程。我们将一窥各个时代下操作系统的设计哲学、关键技术以及它们如何塑造了今日的数字世界。
476 27