前向查找:(?=pattern) (?!pattern)
后向查找:(?<=pattern) (?<!pattern)
正则的debug:
脚本中 use re 'debug';
命令行 perl -Mre=debug script.pl
Regexp::Common 常用正则表达式
use Carp qw/carp croak cluck confess/;
cluck :打印堆栈后继续执行
confess:打印堆栈后停止执行
Hook::LexWrap 封装子程序,在子程序执行前后进行预定义代码
perl -d:SmallProf script.pl
DBI::Profile
perl -d:DProf script.pl
Devel::Profiler、Devel::Cover、Devel::Peek
Perl::Critic
临时修改某个库函数:*Some::Module::bar = sub { ... }
perl 命令行参数 -s ,简单置值(默认设为1),例如:
perl -s script.pl -someval=abc -otherval
$someval="abc"、$otherval=1,二者为全局变量
ConfigReader::Simple、Config::Scoped、AppConfig
IO::Interactive
$! 操作系统或库函数调用得到的错误
$? 最近一次调用wait()得到的错误
$@ 最近一次调用eval()得到的错误
$^E 操作系统特有的错误信息
退出值:my $exit_value= $?>>8;
终止程序的信号值:my $signal=$?&127;
若子程序出现内核转储,则低字节第8位置1:my $core_dump = $?&128;
__LINE__ 当前所在行数
use Fatal; 作用是open失败时自动输出die错误信息
Log4perl
do 每次都重新解析文件,而require和use只解析一次文件。
如果找不到文件,$!;如果找到文件,但是无法读取或解析,$@
YAML、YAML::Tiny、YAML::Syck
Storable、Clone::Any
DBM::Deep
二进制数 my $value = ob 10; # $value=2
Devel::Size、Devel::Peek
vec 将一个字符串当成二进制位向量处理
Tie::Cycle、Tie::Hash::Word::Counter
创建一个模块的发布包:
$ Scriptdist Module.pm
$ make disttest
$ make tardist
没有评论:
发表评论