Just a couple of observations. I've noticed that there are some significant incompatibilites between Net::SFTP and Net::SFTP::Foreign. If you look at Net::SFTP, it's built on top of Net::SSH::Perl, which is non-forking. Net::SFTP::Foreign is forking. Also, Net::SFTP allows passwords---Net::SFTP::Foreign doesn't. But the biggest drawback to Net::SFTP::Foreign that I can see is that it isn't compatible with Net::SFTP anymore ( as of version 0.90_13 ).