1. perl 类里的函数调用其他类的函数:
  2.  
  3. package Horse;
  4. use base qw(Critter);
  5. sub new {
  6. my $invocant = shift;
  7. my $class = ref($invocant) || $invocant;
  8. my $self = {
  9. color => "bay",
  10. legs => 4,
  11. owner => undef,
  12. @_, # 覆盖以前的属性
  13. };
  14. return bless $self, $class;
  15. #return $self;
  16. };
  17. sub sum1 {
  18. $self=shift;
  19. my $a=shift;
  20. my $b=shift;
  21. return $a + $b + 7;
  22. };
  23.  
  24. our @arr=qw/1 2 3 4 5 6 7/;
  25. our %h1=(1,2,3,4,5,6,7,8);
  26. 1;
  27.  
  28. [root@wx03 test]# cat Critter.pm
  29. package Critter;
  30. unshift(@INC,"/root/test");
  31. use message;
  32.  
  33. sub new {
  34. my $self = {};
  35. my $invocant = shift;
  36. my $class = ref($invocant) || $invocant;
  37. my ($name)=@_;
  38. my $self = {
  39. "name" =>$name
  40. };
  41. bless $self, $class; # Use class name to bless() reference
  42. return $self;
  43.  
  44. };
  45.  
  46. sub sum2 {
  47. $self=shift;
  48. my $a=shift;
  49. my $b=shift;
  50. return $a + $b;
  51. };
  52.  
  53. sub fun1 {
  54. $self=shift;
  55. message::message($self);
  56. };
  57. sub on_receive_msg:lvalue{
  58. $self=shift;
  59. $self->{name}="aabbccdd123141242";
  60. $self->{on_receive_msg};
  61. };
  62.  
  63. our $str="12312";
  64. 1;
  65.  
  66. [root@wx03 test]# cat message.pm
  67. package message;
  68. sub message {
  69. my $self=shift;
  70. $self->{color}="q3szczxcae2";
  71. return "message 31313131\n";
  72. };
  73. 1;
  74.  
  75. [root@wx03 test]# cat t10.pl
  76. unshift(@INC,"/root/test");
  77. use Horse;;
  78. use Critter;
  79. my $ua=Horse->new();
  80.  
  81. print $ua->fun1();
  82. print $ua->{color};
  83. print "\n";
  84.  
  85. [root@wx03 test]# perl t10.pl
  86. message 31313131
  87. q3szczxcae2

perl 类里的函数调用其他类的函数的更多相关文章

  1. VS2010 MFC中 在FormView派生类里获取文档类指针的方法

    经过苦苦调试,今晚终于解决了一个大问题. 我想要实现的是:在一个FormView的派生类里获取到文档类的指针. 但是出现问题:试了很多办法,始终无法获取到. 终于,此问题在我不懈地调试加尝试下解决了. ...

  2. c语言里用结构体和指针函数实现面向对象思想

    一.基础研究 观察如下两个程序a.c和b.c: A.c: B.c: 这两个程序都是要实现在屏幕上第10行40列打印一个绿色的字符c: 这两个程序的数据组织方式是一样的,都是使用结构体,而且对共性和个性 ...

  3. Debug模式,不能进入打断点的类,反而进入代理类里

    有史以来,第一次,遇到这个问题, 设置好断点,Debug模式开启项目,,没有进入原来打好的断点类,反而,进入的是和断点类相同名字(但是图标不同)的一个类里, 不能真正的调试,调试变得很麻烦, 解决方案 ...

  4. 1.__tostring()这个方法在类里可以直接输出对象。2.克隆对象的运用

    <?php //__tostring()这个方法在类里的用途 能够直接输出对象 class Ren { public $name; function Run() { echo "跑&q ...

  5. 关于C#基类和子类函数调用问题

    c#基类子类的函数调用关系,代码说明newkeyword后面的类中的函数为对象调用的函数,当然必需要有virtual和override,继承就相当于包括了基类的函数,子类对象调用时基类的函数相当于就在 ...

  6. 假如java类里的成员变量是自身的对象

    假如java类里的成员变量是自身的对象,则新建该类对象时内存中怎么分配空间,我感觉似乎死循环了. 不过我想的肯定是错的,因为很多类的成员变量是自身对象,并且绝对无错,举个例子: Class A{ pr ...

  7. (转)类(class)和结构(struct)的区别是什么?它们对性能有影响吗?.NET BCL里有哪些是类(结构),为什么它们不是结构(类)?在自定义类型时,您如何选择是类还是结构?

    转自:http://blog.csdn.net/lingxyd_0/article/details/8695747 类(class)和结构(struct)的区别是什么?它们对性能有影响吗?.NET B ...

  8. 类里面的非static const成员

    类里面的成员变量可以用const修饰,在只用const不用static修饰的情况下,这种使用的限制比较多 (1)不能定义处初始化,必须在类的构造函数初始化列表里面初始化(虽然在vs中,可以在定义处初始 ...

  9. 在普通Java类里使用spring里注入的service、dao等

    版权声明:本文为博主武伟峰原创文章,转载请注明地址http://blog.csdn.net/tianyaleixiaowu. 在spring管理的web项目里,譬如Struts和spring的项目,配 ...

随机推荐

  1. poj 1905 Expanding Rods 二分

    /** 题解晚上写 **/ #include <iostream> #include <math.h> #include <algorithm> #include ...

  2. Maven Jrebel 多模块热部署方案

    近期在构建maven多模块项目时,发现web module依赖的其它模块,每次都要clean install成一个jar包,然后运行web module才能加载. 本生jrebel是配置在了web m ...

  3. easui tree载入时自动展开无子节点的节点

    利用loadFilter对后台返回的原始数据进行过滤处理,将数据中的state字段修改相应的值,若无子节点,则改成open,若有子节点,则改成closed. 由于一个node属性只有下面几项内容,因此 ...

  4. POJ 1410 Intersection(线段相交&amp;&amp;推断点在矩形内&amp;&amp;坑爹)

    Intersection 大意:给你一条线段,给你一个矩形,问是否相交. 相交:线段全然在矩形内部算相交:线段与矩形随意一条边不规范相交算相交. 思路:知道详细的相交规则之后题事实上是不难的,可是还有 ...

  5. 【Eclipse】调试java程序的九个技巧

    本文转自[半夜乱弹琴],原文地址:http://www.cnblogs.com/lingiu/p/3802391.html 九个技巧: 逻辑结构 条件debug 异常断点 单步过滤 跳到帧 Inspe ...

  6. BZOJ 2730: [HNOI2012]矿场搭建( tarjan )

    先tarjan求出割点.. 割点把图分成了几个双连通分量..只需dfs找出即可. 然后一个bcc有>2个割点, 那么这个bcc就不用建了, 因为一定可以走到其他救援出口. 只有一个割点的bcc就 ...

  7. Handler没法取出消息队列中的数据的一个原因

    主线程发送消息到工作线程,工作线程的步骤是固定为3步的. Looper.prepare();//步骤1,线程里使用handler必须这样写, handler = new Handler(){//步骤2 ...

  8. Centos6.5快速配置可用网卡

    原文链接: Centos6.5快速配置可用网卡 安装完成后,我们启动我们的系统,此时我们的系统,是没有连网的,IP设备,并没有被激活,如果我们使用ifconfig命令查看IP地址,就会发现,此刻的地址 ...

  9. Oracle中奇怪的【不等于号】

    Oracle中奇怪的[不等于号]   在Oracle中,不等号有三种:<>,!=,^= 例如: select * from test where name<>'xn'.返回的结 ...

  10. ASP.NET MVC 5 学习教程:数据迁移之添加字段

    原文 ASP.NET MVC 5 学习教程:数据迁移之添加字段 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符 ...