<pre name="code" class="python">[root@wx03 wx]# cat x1.pm
package 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.pl
unshift (@INC,"/root/wx");
require x1;
$ed = x1->new();
print $ed->sum_var(1,5);
print "\n"; [root@wx03 wx]# perl x1.pl
$class is x1
11111111111111
x1=HASH(0x23e82f0)
$var is $VAR1 = bless( {}, 'x1' ); 111111111111111
6





												

perl 一个简单的面向对象的例子的更多相关文章

  1. [转]一个简单的Linux多线程例子 带你洞悉互斥量 信号量 条件变量编程

    一个简单的Linux多线程例子 带你洞悉互斥量 信号量 条件变量编程 希望此文能给初学多线程编程的朋友带来帮助,也希望牛人多多指出错误. 另外感谢以下链接的作者给予,给我的学习带来了很大帮助 http ...

  2. 一个简单的iBatis入门例子

    一个简单的iBatis入门例子,用ORACLE和Java测试 目录结构: 1.导入iBatis和oracle驱动. 2.创建类Person.java package com.ibeats;import ...

  3. 2.1 一个简单的Web工程例子

    一个简单的Web工程例子 开发环境: Eclipse: Neon Release (4.6.0) JDK:1.8.0_92 Tomcat:8.5.9 Maven:3.3.9 1. 在Eclipse中创 ...

  4. 一个简单的web服务器例子

    一个简单的web容器小例子,功能十分简单,只能访问静态资源,对于新手来说还是有一定的意义.主要分三个类 1.server类:主要功能开启socketServer,阻塞server,接收socket访问 ...

  5. Matlab高级教程_第二篇:一个简单的混编例子

    1. 常用的混编是MATLAB和VS两个编辑器之间的混编方式. 2. 因为MATLAB的核是C型语言,因此常见的混编方式是MATLAB和C型语言的混编. 3. 这里介绍一个简单的MATLAB语言混编成 ...

  6. 一个简单的Java程序例子以及其几种注释

    在说道主题前,先来啰嗦两句,o()︿︶)o 唉,不说两句心里就有个疙瘩,也许这就是所谓的强迫症吧,好了说说我想啰嗦的,其实也就是这样子的,关于Java开发工具箱的下载以及环境的配置.Java开发工具箱 ...

  7. 一个简单的Spring AOP例子

    转载自: http://www.blogjava.net/javadragon/archive/2006/12/03/85115.html 经过这段日子的学习和使用Spring,慢慢地体会到Sprin ...

  8. ibaits的一个简单的完整的例子

    ibaits的简单介绍: iBatis 是apache 的一个开源项目,一个O/R Mapping(对象/关系映射) 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,i ...

  9. 一个简单的ruby生成器例子(用连续体Continuation实现)

    ruby中有很多经典的驱动器结构,比如枚举器和生成器等.这次简单介绍下生成器的概念.生成器是按照功能要求,一次产生一个对象,或称之为生成一个对象的方法.ruby中的连续体正好可以用来完成生成器的功能. ...

随机推荐

  1. Zend Framework 框架搭建

    通过手工方法搭建Zend Framework的MVC框架结构.首先看一下zend framework mvc的目录结构 1. 在根目录下面创建 public ,并在 public 下创建 index. ...

  2. To and Fro(字符串水题)

    To and Fro 点我 Problem Description Mo and Larry have devised a way of encrypting messages. They first ...

  3. 1041. Be Unique (20)

    Being unique is so important to people on Mars that even their lottery is designed in a unique way. ...

  4. 两阶段提交及JTA

    两阶段提交及JTA 分布式事务 分布式事务简介 分布式事务是指会涉及到操作多个数据库(或者提供事务语义的系统,如JMS)的事务.其实就是将对同一数据库事务的概念扩大到了对多个数据库的事务.目的是为了保 ...

  5. Hadoop伪分布式搭建步骤

    说明: 搭建环境是VMware10下用的是Linux CENTOS 32位,Hadoop:hadoop-2.4.1  JAVA :jdk7 32位:本文是本人在网络上收集的HADOOP系列视频所附带的 ...

  6. python学习day4

    目录 一.迭代器 二.yield生成器 三.装饰器 四.递归 五.基础算法 迭代器 #1.在不使用for循环的情况下 li = [11 ,22, 33, 44] #count = len(li) #s ...

  7. Elf 32

    [CentOS]安装软件:/ld-linux.so.2: ELF interpreter解决   环境: [orangle@localhost Downloads]$ uname -m&&am ...

  8. 一种全新的MEMS开关——高性能、快速、低能耗以及双稳态

    这种开关最早由申军教授和研究生阮梅春发明,研究生埃里克·朗格卢瓦在简化结构和缩小尺寸上作了探索,黄志林用相同原理做出了MEMS光学镜子开关,曹志良改变设计.材料和工艺后制作出了能同步开关的矩阵.这种M ...

  9. android 管理Bitmap内存 - 开发文档翻译

    由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没有注明“转”,那么均为原创,转贴请注明本博客链接链接   Managing Bitmap Memory 管理Bitmap内存 In additi ...

  10. C#尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

    安装VS2013后,win7 + .net 4 + c#程序无法连接到SQL Server2000的实例 SQLServer2012在登录远程服务器实例时报错:尝试读取或写入受保护的内存. “尝试读取 ...