
Perl
文章平均质量分 66
zebraol
中原人士。雄性,良民。
展开
-
使用eval时的注意事项
在perl中,异常处理使用 eval { statements; }; if( $@ ) {do something } 结构捕获异常。这里有一点必须要注意:就是 eval 语句块内的 return 语句只从 eval 块内返回,并不会从它所在的方法中返回,即 eval {} 块内的 return 语句只退出当前 eval 块,并不会退出当前函数或方法。示例如下:#!/usr/bin/pe原创 2012-06-10 02:26:40 · 1235 阅读 · 0 评论 -
Perl模块的安装
安装PERL模块过程如下: 1、进入Perl模块安装目录(推荐使用root账户)。 2、perl Makefile.PL #生成 Makefile 文件 3、make install #安装perl模块一个最简单的 Makefile.PL 文件如下所示:use ExtUtils::MakeMaker; #必须的#需要的模块,可省略require原创 2012-06-10 02:24:07 · 1260 阅读 · 0 评论 -
Perl中数组的delete操作
PERL中使用delete 操作符删除数组元素时,数组下标并不会减小,而仅仅是对应下标的值变为 undef。如 @array = ( 1, 2, 3 ) 这时下标为数组元素下标分别为0, 1, 2 ,数组包含三个元素。使用 delete $array[1] 之后,数组仍然包含三个元素,下标仍然是0,1,2,此时元素值为 (1, undef, 3 ),这一点在使用时要注意。原创 2012-06-10 02:25:03 · 1082 阅读 · 0 评论 -
Perl获取指定进程的子进程
因为项目中需要获取指定进程的子进程个数以便控制并发,首先想到的是Linux命令方式,代码如下:sub check_job_process{ while (1) { eval { foreach my $ppid (keys %g_job_process) { my $cnt = `ps --no-hea原创 2012-06-10 03:01:33 · 1166 阅读 · 0 评论 -
Perl中foreach循环变量
看下面代码:#!/usr/bin/perl -wmy $x = 1;for $x (5 ... 8){ print "In the for loop, \$x=[$x]\n";}print "\nOut of for loop, \$x=[$x]\n";[/perl]输出结果如下:[perl]$ ./test.pl In the for loo原创 2012-06-10 02:55:57 · 9406 阅读 · 0 评论 -
FindBin模块在文件嵌套时的返回值
我们知道,Perl的FindBin模块可以取得当前正在运行的Perl脚本的文件路径以及文件名。可是,如果多个文件嵌套调用呢,例如文件A调用文件B,那么B中的FindBin返回的脚本名称应该是B还是A呢?这里做一个试验,详述如下:一、被调用脚本in.pl#!/usr/bin/perl -wuse FindBin;use strict;sub fun { print "原创 2012-06-10 02:28:21 · 506 阅读 · 0 评论 -
Perl中哈希结构的深度拷贝
下午修改一段Perl代码的时候,遇到了一个深度拷贝的问题。废话少说,上代码: my ($rc, $refdata) = db_query($sql_text, "hashref"); unless ($rc) { return ($rc, $refdata); } my @arrayhash = (); foreach my原创 2012-06-10 03:00:31 · 1952 阅读 · 0 评论 -
Perl中的each方法
each函数用以一次一个键字/数值对的方式遍历一个散列。 在散列内部,它以一种看上去是随机的顺序维护它自己的记录。each 可以遍历这个序列是因为每个散列都记得上一次返回的是哪条记录。这个序列的实际的顺序可能在将来的 Perl 版本里会改变,但有一点可以保证,就是 keys(或者 values)函数在同一个(未修改)的散列上生成的顺序是一样的。 每个散列都有一个遍历器,由在原创 2012-06-10 02:59:04 · 2163 阅读 · 0 评论 -
Perl函数的声明与调用
关于Perl中函数的声明以及调用,举例如下:1、第一种使用方式:# declare but not definedsub fun;# call function, the () is not necessaryfun $arg; # okfun($arg); # ok# define the functionsub fun{ //do s原创 2012-06-10 02:51:47 · 3365 阅读 · 0 评论 -
数字与undef进行比较
看下面一个例子:#!/usr/bin/perl -wuse strict;my $var = undef;if($var > 0){ print "> 0\n";}elsif($var == 0){ print "== 0\n";}else{ print "< 0";}执行结果如下:[running]test@localhost:/原创 2012-06-10 02:34:21 · 415 阅读 · 0 评论 -
Perl脚本包含多个BEGIN及END块
众所周知,Perl中的BEGIN块在其它代码执行前执行,而END块在其它代码执行后执行。可是,如果Perl脚本中同时包含多个BEGIN及END块呢,其执行情况如何?看下面测试代码:#!/usr/bin/perl -wuse strict;END{ print "the [" . __LINE__ . "] end block\n"; }print "The other ["原创 2012-06-10 02:29:43 · 668 阅读 · 0 评论