- 論壇徽章:
- 0
|
呵呵,其實這是一段經(jīng)常見的程序中打印debug信息的方式
可以依據(jù)程序的debug level,而有效增加或者減少打印調(diào)試的語句。
知識點:
1)標(biāo)量$debug
2)函數(shù)debug定義與聲明
3)函數(shù)debug調(diào)用
具體解釋如下:
my $debug = $ENV{SERIALSERVER_DEBUG}||DEBUG_LEVEL;
#這句話定義標(biāo)量debug,注意'$';后面我猜測應(yīng)該是一個數(shù)值,用以表示debug level
sub debug($@)
{
my $msglevel = shift;
#取第一個參數(shù)作為msglevel變量,msglevel的用處后面可以看到
unshift(@_ , getLongTime()." : ");
#將時間單位加入到默認(rèn)變量@_當(dāng)中,注意pop,push是在數(shù)組的后段增減;而shift,unshift是作用在數(shù)組的前段
print @_
if ($debug >= $msglevel);
#一個判斷邏輯,即如果變量msglevel不大于變量debug,那么打印傳入進來的參數(shù)并加上當(dāng)前時間
}
debug 0,"程序 $DomainId : $PrgName 啟動...\n";
#調(diào)用debug函數(shù),該函數(shù)已經(jīng)在調(diào)用之前定義并聲明
#傳入的第一個參數(shù)為0,表示msglevel;所以只要變量值debug > 0,就打印傳入的第二個參數(shù)內(nèi)容并且加上當(dāng)前時間
#同樣,如果第一個參數(shù)的值 > debug變量值,函數(shù)就忽略打印語句
hehe, have a nice day! |
|