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";
二.使用数组引用方式创建对象
4556