В отличие от большинства других команд Perl, system
возвращает 0 в случае «успеха» и ненулевое значение в случае «сбоя».Таким образом, типичная идиома -
system $command and die ...
вместо
system $command or die ...
Обновление : ОП действительно правильно выполнил эту часть - system(...)==0 or die ...
также прекрасноспособ проверки ошибок в команде system
.
Там также могут быть некоторые кавычки в точной команде, которую вы передаете команде system
.Для такой задачи часто лучше обойти оболочку и использовать форму LIST system
для передачи команды непосредственно в ОС.Может быть что-то вроде:
my @argList = ($args{NUM_AGENTS}, $args{HOST_NAME}, $procStartTime, $i,
$args{TARGET_PAGE}, 'resplogfile', $reqlogfile, $args{USER_NAME},
$execDelay, $args{COMMON_SID});
system("php", "loadAgent_curl.php", @argList) and die "failed to execute: $!";
(а также убедитесь, что php
находится в вашем $PATH
[или укажите полный путь к php
] и loadAgent_curl.php
в текущем каталоге).