in reply to Is it possible to see what Net::OpenSSH is doing?

One thing you can do, quite easily, is have your program print comments about what it's doing (right before calling $ssh->capture2() or whatever), and of course it can print any captured output or error string afterward, so your output can look something like this:

Connecting to remotehost... Connected. Attempting to log in... Logged in. Sending command: cd /var/foo/wibble Command succeeded. No output. Sending command: cd - Command succeeded. Output: /home/jonadab Sending command: cd /directory-that-does-not-exist Command FAILED. Error information: cd: /directory-that-does-not-exist: No such file or directory

If you want to get fancy, you could even use Term::ANSIColor and display different things in different colors (e.g., output in green, errors in bright magenta, comments in white, and commands in bright yellow, all on a black background; or whatever colors make you happy).