perldoc perlipc
Обратные кавычки, как и в shell, приведут к стандартному выводу команды в виде строки (или массива, в зависимости от контекста). Их можно более четко записать в виде оператора qx
, подобного кавычкам.
@lines = `./sap_calc.pl $id`;
@lines = qx(./sap_calc.pl $id);
$all = `./sap_calc.pl $id`;
$all = qx(./sap_calc.pl $id);
open
также может использоваться для потоковой передачи вместо одновременного чтения в память (как это делает qx
). Это также может обойти оболочку, что позволяет избежать всевозможных проблем с цитированием.
open my $fh, '-|', './sap_calc.pl', $id;
while (readline $fh) {
print "read line: $_";
}