Функция system() запускает новый процесс из C и сценарий Perl.
system()
Чем именно отличаются процессы, называемые system() в C, и от сценариев Perl в плане представления кодов ошибок?
Небольшое исследование поднимает:
Возвращаемым значением является состояние выхода программа, возвращаемая ожиданием вызов. Чтобы получить фактическое значение выхода, сдвиг вправо на восемь (см. ниже). Увидеть также "Exec". Это не то, что вы хотите использовать для захвата вывода из команда, для этого вы должны использовать просто кавычки или qx //, как описано в "STRING" в perlop. Возвращаемое значение -1 означает, что не удалось запустить программа или ошибка ожидания (2) системный вызов (проверьте $! для причина).
STRING
И документы wait говорят:
wait
ведет себя как системный вызов wait (2) в вашей системе: ждет ребенка процесс, чтобы прекратить и возвращает PID умершего процесса, или -1, если нет дочерних процессов. статус возвращается в $? а также $ {^ CHILD_ERROR_NATIVE}. Обратите внимание, что возвращаемое значение -1 может означать, что дочерние процессы в настоящее время автоматически пожинается, как описано в perlipc.
Источники: взято из perldoc . Вот учебник по системе в Perl.