
perl
CamelGem
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Perl正则表达式详解
Perl中的正则表达式使用示例m//修饰符LVALUE =~ m/PATTERN/;LVALUE =~ /PATTERN/;修饰符含义/i匹配时忽略大小写/g全局匹配,默认情况下,正则表达式"abc"匹配"abcdabc"字符串的时候,将之匹配左边的abc,使用g将匹配两个"abc"/c在开启g的情况下,如果匹配失败,将不重置搜索位置/m多行匹配模式/s让.可以匹配换行符"\n",也就是说该修饰符让.真的可以匹配任意字符/x允许正则表达转载 2020-07-03 11:33:51 · 3619 阅读 · 0 评论 -
Perl中Data::Dumper模块用法
Data::Dumper的用法use Data::Dumper;my ($foo, $bar) = ([1, 2, 3], [3, 4, 5]);print Dumper($foo, $bar); # 正常输出引用数据结构print Data::Dumper->Dump([ $foo, $bar ], [ qw(foo *ary) ]);# configuration variables{ local $Data::Dumper::Purity = 1; eval D原创 2020-06-16 22:03:14 · 4334 阅读 · 2 评论 -
Perl中的方法查找顺序
Perl中方法查找的顺序在一个类型为classname的调用者上调用一个名为methname的方法时,Perl会尝试6种不同的方法来找到要调用的子例程:首先,Perl在调用者自己的包中查找一个名为classname::methname的子例程。如果失败,则继续进入第二步查找。接下来,Perl检查从基类继承的方法,在@classname::ISA中所列出的所有的parent包中查找parent::methname子例程。这里会从左向右采用深度优先方式递归查找。递归可以确保租父类,曾祖父类,曾曾祖父类等原创 2020-06-10 22:28:39 · 339 阅读 · 0 评论 -
Perl中包的概念
包的切换当前包既是一个编译时概念也是一个运行时概念。大多数变量名的查找都发生在编译时,不过对符号引用解引用时,以及在eval下编译新代码时,会发生运行时查找。未用my声明的所有变量都与一个包关联,甚至类似$_和%SIG等看上去无所不在的变量也是如此。其他变量都使用当前包,除非加了限定:$name = "Amelia";$Animal::name = "Camel";package声明会改变作用域其余部分(块,文件或eval,要看哪一个最先出现)的默认包,或者直到出现同级的另一个包声明,它会覆盖之原创 2020-06-10 22:11:43 · 362 阅读 · 0 评论 -
Perl中的符号表的使用与说明
Perl中的符号表概念通常来说,我们写一段代码需要为它提供一个命名空间,这样变量和函数才不会与其他人的变量或者函数产生冲突,反之亦然。包是独立于文件的。一个文件通常可以包含多个包,或者一个包可以跨多个文件。通俗来讲包就是perl的模块,通常以.pm结尾,并且在定义一个包时,文件名与包名相同。也有极个别情况,文件名与包名不相同,通常发生在一个文件中定义了多个包,所以它有好几个包名,因此文件名与包名不相同。典型的例子就是VMware官方的PerlSDK开发模块。通常在使用模块化编程时,我们需要学习如原创 2020-06-09 23:47:33 · 972 阅读 · 1 评论 -
Perl中如何重载一个操作符
overload(重载)描述:Perl的重载简而言之就是平时如果我们需要用一些常规操作符去操作对象的话,会得到与正常结果不同的结果。例如将一个对象与一个数字相加:# 重载前package MyClass;use feature qw(say);sub new { shift; bless \(my $var = shift) => __PACKAGE__;}sub add { my ($first, $second) = @_; $$first +原创 2020-05-23 16:04:09 · 673 阅读 · 0 评论 -
Perl中given语句的用法
give … when … 语句在perl 5.10和更高的版本中提供了if结构的一个替代结构,即given函数,从语言学的角度来说,这就相当于是提供了一个主题工具。它的做法是将$_设置为当前主题。然后可以使用when语句检查这个主题的各个不同值或模式。使用Perl的v5.10及以后的版本时,就会启用这个特性:use v5.12; # 至少v5.12 加载默认特性# 如果要特别请求"switch"特性,则需要:use feature qw(switch);以上两种声明都会向Perl语言增加原创 2020-05-18 23:18:12 · 1346 阅读 · 0 评论 -
Perl中智能匹配操作符(smartmatch operator)用法
Smart Match Operatordescription最早在Perl5.10.1(5.10.0版本的行为有所不同)中提供,它的参数之间进行“智能匹配”。尽管不是所有的when子句都调用smartmatch运算符,但通常在perlsyn中描述的when构造中隐式使用它。在所有Perl运算符中唯一的,smartmatch运算符可以递归。smartmatch运算符是实验性的,其行为可能会发生变化。它的独特之处还在于,所有其他Perl运算符都在其操作数上施加了上下文(通常是字符串或数字上下文),将翻译 2020-05-18 12:25:02 · 2115 阅读 · 0 评论 -
POSIX模块中的几种宏和常量的说明
POSIX模块中的几种宏和常量的说明ConstantsWNOHANG在子进程更改状态之前,不要挂起调用进程,而是立即返回。WUNTRACED捕获已停止的子进程。MacrosWIFEXITED(${^CHILD_ERROR_NATIVE})如果子进程正常退出,则返回true (通过exit() 或者程序一直执行到main末尾 )WEXITSTATUSWEXITSTATUS(${^CHILD_ERROR_NATIVE}) 返回子进程的正常退出状态 (只有在 WIFEXIT原创 2020-05-09 12:48:55 · 424 阅读 · 0 评论 -
Perl中fork函数的使用示例 PART 2
Fork Part 2翻译自Perl.com(Fork Yeah!)##### Perl.com在本文的第一部分中,我描述了如何使用Perl的fork函数编写并发程序。下面是其他几种方法。WNOHANG通常,waitpid是阻塞调用,当子进程退出时返回:#!/usr/bin/perlmy $pid = fork;if ($pid == 0) { sleep 1; exit;}waitpid $pid, 0; # 在子进程退出前,父进程会一直等待在此示例中,waitpid翻译 2020-05-09 10:56:28 · 430 阅读 · 0 评论 -
Perl中fork函数的使用示例 PART 1
Fork Part 1翻译自Perl.com(Fork Yeah!)Perl.com最近在工作中,我不得不加快处理文件的Perl脚本。 Perl可以使用fork函数产生多个进程,但是除非正确管理子进程,否则事情可能会出错。我在脚本中添加了fork,并能够将脚本的吞吐率提高近10倍,但是我花了一些努力才能将其正确设置。在本文中,我将向您展示如何安全使用fork并避免一些常见错误。N.B. Windows用户:由于fork系统调用在Windows上不可用,因此这些示例可能无法按所述方式运行,因为该行为是翻译 2020-05-09 10:07:28 · 1046 阅读 · 1 评论