perl 创建包
2016-03-22 09:24
501 查看
<pre name="code" class="python"><pre name="code" class="python">uat-app01:/root/test# cat x1.pm package x1; use Data::Dumper; sub new { my $self ={}; my $invocant = shift; my $class = ref($invocant) || $invocant; my ($name,$age,$starting_position,$monthly_salary)=@_; my $self = { "name" =>$name, "age" =>$age }; print "\$class is $class\n"; print "--------------------\n"; print $self->{name}; print "\n"; print "--------------------\n"; bless($self, $class); # 给予对象性质 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; uat-app01:/root/test# cat x1.pl unshift(@INC,"/root/test"); require x1; $ed=x1->new('lily','29') ; print $ed->sum_var(99,5); print "\n"; print $ed->{name}; print "\n"; uat-app01:/root/test# perl x1.pl $class is x1 -------------------- lily -------------------- 104 lily 当Perl 看到$ed->sum_var(99,5); 时,它会决定$ed属于哪个类(也就是在其中执行bless的) 在这里,它是x1. Perl于是就会如下所示调用这个函数 x1::sum_var($ed) 换句话说,箭头左边的对象只是作为相应子程序的第一个参数。 uat-app01:/root/test# cat x1.pl unshift(@INC,"/root/test"); require x1; $ed=x1->new('lily','29'); print x1::sum_var($ed,90,66); print "\n"; uat-app01:/root/test# perl x1.pl $class is x1 -------------------- lily -------------------- 156
相关文章推荐
- VS2005 vc++ 后缀文件解释
- 使用R做随机森林分类时遇到的一些基本问题
- js进度条组件封装完结版
- 第一篇,争取坚持下来
- .Net 高效开发之不可错过的实用工具
- springMVC上传图片,前台JS ,后台JAVA
- Django中静态文件引用优化
- 对象与类的自我理解
- python编写简单爬虫资料汇总
- YTU 2986: 删除区间内的元素(线性表)
- vs2015破解密钥
- fdisk命令详解
- Android UI自动化测试最佳实践 - 51Testing软件测试网-中国软件测试人的精神家园
- Git fetch和git pull的区别
- tcp/ip ---数据链路层
- The view hierarchy is not prepared for the constraint
- 概率密度估计简介
- 动态规划面试题
- 【代码笔记】获得当前的月的天数
- 《人性的弱点》发现自己并成为自己:记住自己独一无二