经典大骆驼回顾
经典大骆驼回顾
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
scan724
这个作者很懒,什么都没留下…
展开
-
perl 匿名函数传参
$subref=sub { my $a=shift; return $a; };print $subref->("xxyyzz");原创 2016-05-26 14:16:49 · 1351 阅读 · 1 评论 -
use EXPORT和use EXPORT_OK
我不明白 use EXPORT和use EXPORT_OK的区别,大多数资料提到了一些:@Export 允许 导出模块的函数和变量到用户的名字空间使用标准的导入方法。这种方式,我们不需要创建模块的对象来访问它的成员。@EXPORT_OK 导出选择的模块的符号列表(子函数和变量)但是确实没有看到差别, 能有人提供一个小的基本的额例子 来说明2个符号的差异?你不应该导出很多符号默原创 2016-05-19 22:05:01 · 459 阅读 · 0 评论 -
perl $d = encode_utf8($r); $f = decode_json($d)
[root@dr-mysql01 ~]# cat a1.plmy $url="http://192.168.32.101:3000/api/getcode?env=zj&phone=180727xx237";use LWP::UserAgent;use Encode; my $ua = LWP::UserAgent->new;$ua->timeout(10);$ua->env_pr原创 2016-05-20 10:11:17 · 809 阅读 · 0 评论 -
dump json 显示中文问题
[root@dr-mysql01 ~]# cat a2.pl my $url="http://192.168.32.101:3000/api/getcode?env=zj&phone=18072722237";use LWP::UserAgent;use Encode; my $ua = LWP::UserAgent->new;$ua->timeout(10);$ua->env_p原创 2016-05-20 10:25:11 · 1134 阅读 · 0 评论 -
json 模块
JSON:JSON-JSON (JavaScript 对象标记) 编码/解码简介: use JSON; # imports encode_json, decode_json, to_json and from_json.##简单和快速接口(期望/生产 UTF-8) $utf8_encoded_json_text = encode_json $perl_hash_or_arr原创 2016-05-20 10:50:21 · 334 阅读 · 0 评论 -
Perl 面向对象编程的两种实现和比较:
https://www.ibm.com/developerworks/cn/linux/l-cn-perlobj/Perl 面向对象编程的两种实现和比较:Perl 面向对象的实现有两种方式:1.基于匿名散列2.基于数组Perl 作为一种成熟的“面向过程”的语言,同样也提供了对于面向对象编程的支持。Perl 中有两种不同地面向对象编程的实现,一是基于匿名哈希表的方式,每个对象原创 2016-05-20 21:37:46 · 824 阅读 · 0 评论 -
perl 回调函数
在计算机程序设计中,回调函数,或简称回调(Callback),是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。没啥不好理解的呀,就是向函数的参数为 一个函数的引用呀。。[root@wx03 ~]# cat a2.pl use AE; use AnyEvent;##定义watch sub run { my原创 2016-05-21 16:40:06 · 486 阅读 · 0 评论 -
子过程左值属性
子过程左值属性:除非你定义子过程返回一个 左值,否则你你不能从子过程中返回一个可以修改的标量值:sub on_receive_msg{ $self=shift; $self->{name}="aabbccdd123141242"; $self->{name};};Can't modify non-lvalue subroutine call a原创 2016-05-21 15:36:06 · 354 阅读 · 0 评论 -
perl 类里的函数调用其他类的函数
perl 类里的函数调用其他类的函数:package Horse;use base qw(Critter);sub new {my $invocant = shift;my $class = ref($invocant) || $invocant;my $self = {color => "bay",legs => 4,owner => undef,@_, # 覆盖以前的属性原创 2016-05-22 09:45:16 · 1689 阅读 · 0 评论 -
perl 改变对象属性
[root@wx03 test]# cat Critter.pm package Critter;#unshift(@INC,"/root/test"); #use message;sub new { my $self = {}; my $invocant = shift; my $class = ref($invocant) || $invocant; my原创 2016-05-23 08:12:11 · 441 阅读 · 0 评论 -
perl eval
eval 表达式:eval 块:eval在第一种形式,通常称为一个字符串eval EXPR 返回值是被解析的和被执行的作为一个小小的Perl程序。表达式的值(是它本身决定的在标量上下文环境)是有限被解析,如果这里没有错误,作为一个block执行在当前Perl程序的词法上下文。这意味着,特别情况下, 任何外部的词法变量时可见的,任何包变量设置或者子函数和格式定义原创 2016-05-23 10:09:11 · 449 阅读 · 0 评论 -
perl 回调必须是函数引用
[root@wx03 lib]# cat a1.pl use AE;use AnyEvent;##定义watchmy $t = AnyEvent->timer( after => 0, interval => 5, cb => sub {print test."\n";} ); ##不要再每秒打印时间原创 2016-07-14 10:19:17 · 615 阅读 · 0 评论 -
匿名函数和闭包
sub {} 是匿名函数的语法,匿名函数是引用[root@wx03 1215]# cat a1.pl use Data::Dumper;my $a= sub {return 'aa'};print $a;print "\n";print Dumper($a);print &$a;[root@wx03 1215]# perl a1.pl CODE(0x1117c18)$V原创 2016-07-15 12:55:48 · 350 阅读 · 0 评论 -
递归类继承错误
[root@wx03 test]# cat Horse.pm Horse 类:package Horse;#our @ISA = "Critter";sub new {my $invocant = shift;my $class = ref($invocant) || $invocant;my $self = {color => "bay",legs => 4,owner =原创 2016-05-18 10:02:40 · 401 阅读 · 0 评论 -
perl 函数回调 引用$client->run(sub {$client->sync});
匿名函数引用:[root@wx03 wx]# perl a1.pl CODE(0x2077b30)test[root@wx03 wx]# cat a1.pl $ref= sub {return test."\n"};print $ref;print "\n";print &$ref;[root@wx03 wx]# perl a1.pl CODE(0x21a2b30)tes原创 2016-05-19 17:21:37 · 650 阅读 · 0 评论 -
12.5.3 UNIVERSAL:最终的祖先类:
12.5.3 UNIVERSAL:最终的祖先类:你可以把 UNIVERSAL 看作最终的祖先,所 有类都隐含地从它衍生而来。INVOCANT->isa(CLASS)如果 INVOCANT 的类是 CLASS 或者任何从 CLASS 继承来的,isa 方法返回真。 除了包名字以外,CLASS还可以是一个内建的类型,比如 "HASH" 或者 "ARRAY"。 (准确地检查某种类型在封原创 2016-05-18 13:54:23 · 363 阅读 · 0 评论 -
第十二章对象(上)
第十二章对象(上):对象是一个数据结构,带有一些行为。 我们通常把这些行为成为对象的直接动作,适用于某一个特定对象的方法叫做实例方法适用于整个类的方法叫做类方法类里面那些生成 对象实例的方法叫构造方法一个类可以从父类中继承方法,父类也叫基类或者超级类12.2 Perl 的对象系统一个对象只不过是一个引用...恩,就是引用。因为引用令独立的标量代表大量的数据原创 2016-05-17 22:06:51 · 305 阅读 · 0 评论 -
perl 继承概述
[root@wx03 test]# cat Horse.pm package Horse;##Horse继承了Critter类,Critter这里是基类或者父类use base qw(Critter);sub new {my $invocant = shift;my $class = ref($invocant) || $invocant;my $self = {color =>原创 2016-05-27 09:39:55 · 468 阅读 · 0 评论 -
Perl概述
@home = ("couch", "chair", "table", "stove"); 数组数组.一个数组是多个标量的有序列表因为数组是有序的,所以你可以在它上面做很多很有用操作.例如堆栈操作 push 和 pop散列,散列是一组无序标量%longday = ("Sun" => "Sunday","Mon" => "Monday","Tue" => "Tuesday",原创 2016-05-15 22:43:51 · 320 阅读 · 0 评论 -
第八章,引用
第八章,引用:[root@wx03 2]# cat a7.pl @john = (47, "brown", 186);@mary = (23, "hazel", 128);@bill = (35, "blue", 157);@vitals = ('john', 'mary', 'bill');print $vitals[0][1];print "\n";[root@wx03 2原创 2016-05-16 17:16:36 · 292 阅读 · 0 评论 -
第十章包
第十章包:在 Perl 里,一个名字空间叫一个包。包提供了基本的制作块,在它上面 构造更高级的概念,比如模块和类等。在 OO 的说法中,每个对象都属于一个叫做类的组典型的类是用一个 定义了与该类同名的包名字的模块实现的在 Perl 里的面向对象的编程是通过引用来 实现的,这些引用的引用物知道它们属于哪些类双冒号可以用于把包名字里的标识符链接起来:$Red::Blue::V原创 2016-05-17 14:02:01 · 247 阅读 · 0 评论 -
使用模块
11.1 使用模块模块有两种风格:传统的和面向对象的。传统模块为调用者的输入和使用定义了子过程和 变量。面向对象的模块的运转类似类声明并且是通过方法调用来访问的,在第十二章, 对象,里描述。有些模块有上面两种类型的东西。因此 如果你的模块的名字是 Red::Blue::Green,Perl 就会把它看作Red/Blue/Green.pm。[root@wx03 test]# cat原创 2016-05-17 16:47:59 · 283 阅读 · 0 评论 -
perl 继承 @ISA
12.5 类继承对Perl的对象剩下的内容而言,从一个类继承另外一个类并不需要给这门语法增加特殊的语法,当你调用一个方法的时候,如果Perl在调用者的包里找不到这个字过程,那么他就检查@ISA数组perl是这样实现继承的,一个包@ISA数组了的每个元素都保持另外一个包的名字当缺失方法的时候就搜索这些包。比如,下面的代码把Horse类变成了Critter类的子类 (这里Crit原创 2016-05-17 22:20:59 · 1485 阅读 · 0 评论 -
perl 当前包会覆盖父类的同名方法
12.5.2 访问被覆盖的方法:当一个类定义一个方法,那么该子过程覆盖任意基类中同名的方法。[root@wx03 test]# cat Horse.pm package Horse;our @ISA = "Critter";sub new {my $invocant = shift;my $class = ref($invocant) || $invocant;my $self原创 2016-05-18 10:59:25 · 452 阅读 · 0 评论 -
perl 使用SUPER类来访问覆盖的方法
有时候,你希望一个衍生类的方法表现得象基类中的某些方法的封装器这就是 SUPER 伪类提供便利的地方。它令你能够调用一个覆盖了的基类方法,而不用声明 是哪个类定义了该方法。(注:不要把这个和第十一章的覆盖 Perl 的内建函数的机制混淆 了,那个不是对象方法并且不会被继承覆盖。你调用内建函数的覆盖是通过 CORE 伪包,而 不是 SUPER 伪包。)下面的子过程在当前包的 @ISA 里原创 2016-05-18 11:10:38 · 1239 阅读 · 0 评论 -
perl 为什么要用引用来做对象呢?
perl 为什么要用引用来做对象呢?因为一个重要的原因是 my 引用 脱离作用域,外部仍旧生效原创 2016-05-18 15:22:09 · 527 阅读 · 0 评论 -
perl use base 代替 @ISA
packge Mule;use base ("Horse", "donkey"); # 声明一个超类它是下面东西的缩写:package Mule;BEGIN {our @ISA = ("Horse", "Donkey");require Horse;require Donkey;}Horse 类 :[root@wx03 test]# cat Horse.pm packa原创 2016-05-18 17:45:22 · 631 阅读 · 0 评论 -
第六章 子过程:
第六章 子过程:声明一个命名子过程,但不定义它,使用下面的形式:sub NAMEsub NAME PROTOsub NAME ATTRSsub NAME PROTO ATTRS声明并且定义一个命名子过程,加上一个 BLOCK:sub NAME BLOCKsub NAME PROTO BLOCKsub NAME ATTRS BLOCKsub NAME PROTO ATTRS原创 2016-05-16 14:09:44 · 301 阅读 · 0 评论 -
perl 访问类方法的几种方式
[root@wx03 test]# cat Horse.pm package Horse;use base qw(Critter);sub new {my $invocant = shift;my $class = ref($invocant) || $invocant;my $self = {color => "bay",legs => 4,owner => undef,@_原创 2016-05-19 09:38:52 · 1080 阅读 · 0 评论 -
perl 调用方法 子例程说明
Perl does not provide any special syntax for class definitionsPerl 不提供任何特殊的语法对于类的定义A package is simply a namespace containing variables and subroutines. The only difference is that in a class, the原创 2016-05-19 10:54:18 · 739 阅读 · 0 评论 -
perl 继承写法
use base (Critter); 和 BEGIN{ require Critter; @ISA=qw/Critter/; } 这两种写法是等价原创 2016-08-18 22:28:29 · 142 阅读 · 0 评论