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,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;