博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
perl 一个简单的面向对象的例子
阅读量:4684 次
发布时间:2019-06-09

本文共 1592 字,大约阅读时间需要 5 分钟。

[root@wx03 wx]# cat x1.pmpackage x1;  use Data::Dumper;  sub new {  my $self ={}; ##引用my $invocant = shift;  my $class = ref($invocant) || $invocant;  print "\$class is $class\n";  bless($self, $class); # 给予对象性质   告诉 方法属于哪个对象,$class==x1, bless 引用 特定的包  ,### bless 引用 特定的包 来实现面向对象print "11111111111111\n";print $self;print "\n";use Data::Dumper; my $var= Dumper($self);print "\$var is $var\n";print "111111111111111\n";return $self;  };  sub sum_var {   my ($self,              ##第一个参数为对象:      $var1,              # Name or IP number of host to ping      $var2,           # Seconds after which ping times out      ) = @_;my $var3= $var1 + $var2;return $var3; } 1;对象只是一种特殊的引用,它知道自己是和哪个类关联在一起的,而构造器知道如何创建那种关联关系。            这些构造器是通过使用bless操作符,将一个普通的引用物转换成一个对象实现的,bless 就是绑定一个数据结构的引用到一个包的名字上。一个"对象"是指一个“有办法知道它是属于哪个类”的简单引用bless 函数接收一个或者两个参数,第一个参数是一个引用,而第二个是要把引用赐福(bless)成的包。    如果忽略第2个参数,则使用当前包 所有对象都是引用,但不是所有引用都是对象。    一个引用不会作为对象运转,除非引用它的东西又特殊标记告诉Perl它属于哪个包。     把一个引用和一个包名字标记起来(因此也和包中的类标记起来了,因为一个类就是一个包)    的动作被称作赐福(blessing)      你可以把赐福(bless)看作把一个引用转换成一个对象,尽管更准确地说是它把该引用转换成一个对象引用    Perl类的方法只不过是一个Perl子程序而已,也即通常所说的成员函数。Perl的方法定义不提供任何特殊语法,    但规定方法的第一个参数为对象或其被引用的包。    Perl提供了bless()函数,用于返回一个引用,并成为一个对象。--------------------------------------------------------------------------------------------------[root@wx03 wx]# cat x1.plunshift (@INC,"/root/wx"); require x1;$ed = x1->new();print $ed->sum_var(1,5);print "\n";[root@wx03 wx]# perl x1.pl$class is x111111111111111x1=HASH(0x23e82f0)$var is $VAR1 = bless( {}, 'x1' );1111111111111116
 
 
 
 
 
 

转载于:https://www.cnblogs.com/zhaoyangjian724/p/6200289.html

你可能感兴趣的文章
关于ProjectServer定制化项目中心页面
查看>>
使用Collectd + InfluxDB + Grafana进行JMX监控
查看>>
Linux下tar,zip命令详解
查看>>
C#垃圾回收机制
查看>>
31、任务三十一——表单联动
查看>>
[ios] IOS文件操作的两种方式:NSFileManager操作和流操作【转】
查看>>
Jenkins之Linux和window配置区别
查看>>
python之hasattr、getattr和setattr函数
查看>>
maven使用阿里镜像配置文件
查看>>
Java之字符流操作-复制文件
查看>>
iOS开发UI篇—实现一个私人通讯录小应用(二)
查看>>
iOS开发UI篇—UITableview控件使用小结
查看>>
lesson1 预备知识
查看>>
Copy code from eclipse to word, save syntax.
查看>>
arguments.callee的作用及替换方案
查看>>
23 Java学习之RandomAccessFile
查看>>
SSH远程会话管理工具 - screen使用教程
查看>>
hibernate validation HV000030: No validator could be found for constraint
查看>>
Telink MESH SDK 如何使用PWM
查看>>
LR SP PC
查看>>