Возможно, что-то пошло не так, но, вероятно, системные команды не работают. Либо загрузка модуля, запуск vncserver или rsh. Вы можете вручную проверить их успешность или неудачу, проверяя $?
после каждой команды ... или вы можете использовать IPC :: System :: Simple , и в случае сбоя команды произойдет ошибка.
Я бы хотел начать с последовательности команд оболочки, чтобы убедиться, что она работает.
Тогда я бы переписал код примерно так, используя IPC :: System :: Simple для проверки ошибок. Также разделив команду $ mod на две команды, потому что я подозреваю, что вы получаете результат работы vncserver, а не загрузки модуля.
use strict;
use warnings;
use IPC::System::Simple qw(run capture);
my $host = "something.something";
# Capture the output of loading the module
my $mod = capture('module', 'load', 'turbovnc-1.0.0');
warn "Module output: $mod\n";
# Run the VNC server
run('vncserver -otp 2> tmp_vnc.log');
# Connect to the host
my $launch = capture('ssh', $host, "/$mod/");
warn "ssh output: $launch";
Может показаться, что возможно ошибочное предположение о том, что расположение модуля на этой машине совпадает с расположением модуля на удаленной машине. Это или я не понимаю, что вы делаете с $mod
.