$log = LogFile->new($cfg{logdir} .'/tpchc.log', ($tpchc->{args}->{debug}) ?1 : 0) 这是什么意思请



$ log = logfile-> new($ cfg {logdir}。(

有人可以告诉我这意味着什么

代码正在创建一个新的LogFile对象,该对象采用两个参数:日志文件的路径和调试布尔值。

在这种情况下,第一个参数是使用串联(带有周期(,第二个参数正在使用三元if-else设置。

perl是一种编译时的语言,因此它允许您直接以构造函数为构造函数(尽管有限制(。与这样做一样:

my $file  = $cfg{logdir} . '/tpchc.log';
my $debug = $tpchc->{args}->{debug} ? 1 : 0;
my $log   = LogFile->new($file, $debug);

顺便说一句,简单的哈希和hashrefs(而不是对象(可以在字符串中插值,因此您实际上不需要串联$file行:

my $file = "$cfg{logdir}/tpchc.log";

有些人发现更容易阅读,有些人对每个人都不是这样。

最新更新