+ -
当前位置:首页 → 问答吧 → 如何用Perl写一个登陆远程主机的函数

如何用Perl写一个登陆远程主机的函数

时间:2011-12-18

来源:互联网

用Expect进行远程交互操作时第一步总是要登陆远程主机,为了简化代码,想把这一部分写成一个函数:
Perl code

sub connect{
    my $ip=$_[0];    
    my $exp=Expect->new;
    $exp=Expect->spawn("ssh root\@$ip");
    $exp->expect("password:");
        $exp->send("admin");
    return $exp;
}

请问代码可以这样写吗,用connect函数的返回值去执行expect,send函数会有问题吗?
本人对Perl内部的机制不甚了解,希望高手指点

作者: busybeeCS   发布时间: 2011-12-18

没有问题!

作者: fibbery   发布时间: 2011-12-18

Perl会记录对象的引用计数,所以,不用担心函数返回后$exp所引用的对象在退出函数时被销毁。

作者: fibbery   发布时间: 2011-12-18