system () разветвляет процесс и запускает его как команду оболочки.Отладчик Perl не будет следовать от родительского процесса Perl до разветвленной команды оболочки.
Шаги, которые можно использовать для отладки этой части:
1) Вы можете отладить сам вызов оболочки, если онделать то, что вы ожидаете это сделать?(Запуск вручную, запуск из strace / dtrace)
2) Вы можете напечатать любые переменные, которые вы отправляете в него.Правильно ли переданы переменные?
3) Вы можете проверить возвращение команды, чтобы увидеть, выполняет ли она то, что вам нужно.
Кроме того, вы уверены, что system () - это то, что вам нужно??Из системы perldoc:
Это не то, что вы хотите использовать для захвата выходных данных команды, для этого вы должны использовать просто backticks или qx //, как описано в STRING
в perlop,Возвращаемое значение -1 указывает на ошибку при запуске программы или ошибку системного вызова wait (2) (проверьте $! По причине).