my $ssh = login($user, $pass, $host); test(\$ssh); sub login { ($user, $pass, $host) = @_; my $ssh = Net::OpenSSH -> new($host, user=>$user, password=> $pass); return $ssh; } sub test { $ssh2 = shift; $output = $ssh2 -> capture("ls /tmp"); print $output; }