in reply to
Net::SFTP::Foreign frequent connection server stall
You didn't mention trying Net::SSH2, it might be worth a try.
#!/usr/bin/perl
use warnings;
use strict;
use Net::SSH2;
my $ssh2 = Net::SSH2->new();
$ssh2->connect('localhost') or die "Unable to connect Host $@ \n";
$ssh2->auth_password('z','ztester') or die "Unable to login $@ \n";
#get a large file like a 100Meg wav file
my $dir = '/home/whoever';
my $remote1 = $dir.'/1.wav';
use IO::File;
my $local1 = IO::File->new("> 2.wav"); #it needs a blessed reference
$ssh2->scp_get($remote1, $local1);
__END__