Bootstrap

【总结】Perl技巧

 1. Perl超时机制 
eval 
{ 
 my $tmpCmd="ping 192.168.0.1";
 local $SIG{ALRM} = sub { alarm 0; die "TIMEOUT"; };
 alarm(10); 
 my $startCmdResult = qx($tmpCmd);
 alarm(0);  
};  
if ($@ =~ /TIMEOUT/) 
{
 print "ping timeout";
}

 

2. 忽略SIGCHLD信号,避免产生僵尸进程
$SIG{CHLD} = 'IGNORE';

3.等待

sub show_flower
{
 local $| = 1;
 my @progress_symbol = ('-','\\','|','/');
 my $n = 0;
 my $count=8;
 while($count--)
 {
  #print "\r$progress_symbol[$n]";
  $n = ($n>=3)? 0:$n+1;
  select(undef, undef, undef, 0.1);
 }
 #print "\r";
 local $| = 0;
}


4. Perl多行注释
单行注释:用#号
多行注释:
最常用的方法是使用 POD(Plain Old Documentations) 来进行多行注释。方法如下:
=pod
codes to comment
=cut

5. 类似于unix shell中的“此处文档”语法

#!/usr/bin/perl -w
$P = 3.1415926;
print <<EOF;
    the price is $P.
     Hello World.
EOF

6. Perl常量的用法

use constant PI => ( 4* atan2(1,1) );
PI=6; # Cannot modify PI; produces an error.  
use constant DEBUG =>  1; 
print "Pi equals ", PI, "...\n" if DEBUG;


 

;