Код создает новый объект LogFile
, который принимает два аргумента: путь к файлу журнала и логический флаг отладки.
В этом случае первый аргумент использует конкатенацию (с точкой), а второй аргумент задается с использованием троичного if-else .
Perl является языком компиляции во время выполнения, поэтому он позволяет вам писать аргументы непосредственно в конструкторе (хотя для этого есть ограничения).Это то же самое, что и:
my $file = $cfg{logdir} . '/tpchc.log';
my $debug = $tpchc->{args}->{debug} ? 1 : 0;
my $log = LogFile->new($file, $debug);
Между прочим, простые хэши и хэш-ссылки (но не объекты) могут быть интерполированы в строку, поэтому вам не нужно объединять строку $file
:
my $file = "$cfg{logdir}/tpchc.log";
Некоторые люди находят, что их легче читать, а некоторые нет, каждому свое.