- 论坛徽章:
- 0
|
呵呵,其实这是一段经常见的程序中打印debug信息的方式
可以依据程序的debug level,而有效增加或者减少打印调试的语句。
知识点:
1)标量$debug
2)函数debug定义与声明
3)函数debug调用
具体解释如下:
my $debug = $ENV{SERIALSERVER_DEBUG}||DEBUG_LEVEL;
#这句话定义标量debug,注意'$';后面我猜测应该是一个数值,用以表示debug level
sub debug($@)
{
my $msglevel = shift;
#取第一个参数作为msglevel变量,msglevel的用处后面可以看到
unshift(@_ , getLongTime()." : ");
#将时间单位加入到默认变量@_当中,注意pop,push是在数组的后段增减;而shift,unshift是作用在数组的前段
print @_
if ($debug >= $msglevel);
#一个判断逻辑,即如果变量msglevel不大于变量debug,那么打印传入进来的参数并加上当前时间
}
debug 0,"程序 $DomainId : $PrgName 启动...\n";
#调用debug函数,该函数已经在调用之前定义并声明
#传入的第一个参数为0,表示msglevel;所以只要变量值debug > 0,就打印传入的第二个参数内容并且加上当前时间
#同样,如果第一个参数的值 > debug变量值,函数就忽略打印语句
hehe, have a nice day! |
|