in reply to Re^3: Net::OpenSSH changing directory does not work properly
in thread Net::OpenSSH changing directory does not work properly

Actually, all the methods of Net::OpenSSH support running a shell, even if it doesn't make sense for several of them.

Just, don't pass a command argument and you get a shell. For instance:

$out = $ssh->capture({stdin_data => <<EOS}); ls foo this foo that rm -R / EOS # or... ($socket, $pid) = $ssh->open2socket; print $socket "ls\n"; while (<$socket>) { print }; waitpid($pid, 0);