perl面向对象

perl面向对象

一.使用哈希引用方术创建对象

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

1.创建类文件 Person.pm

复制代码
#!usl/bin/perl

package Person;

#new方法就是一个构造函数,它返回一个与类名相关的对象的引用

sub new

{
    my $class = shift;   #有个隐含的参数在@_数组第一个位置,就是调用该类方法的类名称,也就是这里的shift,我们把类名称存储到变量class中
    #打印类名称
    print "class=$class\n";  #打印Person
  
    #创建一个匿名哈希表的引用,{}是一个匿名哈希表
    my $self={
        Name=>shift,
        Age=>shift,
        Sex=>shift,
    };
    #输出信息
    print "名字:$self->{Name}\n";
    print "年纪:$self->{Age}\n";
    print "性别:$self->{Sex}\n";

 #通过 bless 把一个引用和这个类名相关联,返回这个引用就构造出一个对象
    bless $self, $class;
    return $self;
}

#方法的第一个参数为对象或者被引用的包
sub SetName
{
   #_self接收的是对象,—Name接收的是设置的Name
   my($_self,$_Name)=@_;
   print "before Name=$_self->{Name}";
   $_self->{Name}=$_Name if defined $_Name;
    print "after Name=$_self->{Name}";
}
sub GetName
{
     my($_self)=@_;
     return $_self->{Name};
}
1;
复制代码

2.使用类

#!/usr/bin/perl

use Person;
$object = new Person( "LiMing", 25, "man");

$object->SetName("LiQiang");
$__Name=$object->GetName();
print "$__Name";

 

二.使用数组引用方式创建对象

 

posted @   WellMandala  阅读(131)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示