in reply to net::sftp::foreign - default timeout?

you can set it on the constructor, for instance:
my $sftp = Net::SFTP::Foreign->new('foo@bar.com', timeout => 300);
Internally, it is stored on $sftp->{_timeout} and the default value is undef that means "do not time out".

update: and $sftp->status becomes SSH2_FX_CONNECTION_LOST when a timeout causes some command to fail.