在perl中打开telnet期间要读取的文件

时间:2013-10-31 06:54:40

标签: android perl file telnet

我打开了一个使用用户名和密码的telnet会话。我试图打开一个文件进行阅读,但它给我一个错误,说“没有这样的文件或目录”,而我确认文件在路径中的打印命令。我们可以在telnet会话期间打开要读取的文件吗?或者如何在telnet会话期间打开文件?这是我的代码,文件是ab.txt:

    use Net::Telnet;
$t = new Net::Telnet (Timeout => undef, Dump_log=>"dump.log");
$username="sqa";
$password="4q2013";
$t->open("xx.xx.xxxx.com");
$t->login($username, $password);
$cmd='cd '.'/projects/74/android-rfs/sys
tem/app';
my $ldir="/projects/74/Android";

ipadd();
print $ip_add=@ipadd[2];
print "Value of \$t is:$t\n";
@lines=$t->cmd($cmd) or die "Cannot perform cmd:$!";
print @lines;
$t->cmd("cp $nmn.apklist.txt $ldir\n");

$cmd1='cd '.'/projects/74/Android';
@lines1=$t->cmd($cmd1);
print @lines1;
$req_apks="/projects/74/Android/ab.txt";
print "Value of \$req_apks is: $req_apks\n";

######### Installating APKs ################################

        $path="$ldir/latest_apks";
        @b= $t->cmd("cd $path\n");
        print "cd:@b\n";
        $t->cmd("./adb kill-server\n") or die "Cannot kill adb servers:$!";
        sleep(10);
        $t->cmd("./adb start-server\n") or die "Cannot start adb servers:$!";
        sleep(10);
        @line=$t->cmd("./adb devices\n");
        print "adb:@line\n";
        sleep(10);
        @cnt=$t->cmd("./adb connect $ip_add\n") or die "Cannot connect adb to bo
ard IP Address:$!";
        print @cnt;
        sleep(5);
open(F2, "$req_apks") or die "Cannot open APK Filelist file $req_apks:$!";
while (my $req = <F2>)
        {

        print "Installing new package $req\n";
        @b= $t->cmd("./adb install $req \n") or die "Cannot install:$!";
        print @b;
       print @b;
        sleep(3);
        }
#$t->close;
$t->cmd("./adb disconnect $ip_add\n");
sleep(6);
$t->cmd("./adb kill-server\n") or die "Cannot kill adb servers after install:$!"
;
sleep(10);
close(F2);
print "Listapk function ended\n";





sub     ipadd
{
        $ip='xx.xxx.xx.xx';
        $ip_port='10005';
        $port  = new Net::Telnet->new( Host=>$ip,Port=>$ip_port);

        $port->write("ifconfig eth0\n");
while (my $line = $port->getline())
        {
                if ($line=~/flags/)
                {
                        @ipadd= split(" ",$line);
                        #print $line;
                        #print @ipadd[2];
                        goto ln;
                }
                else
                {}
        }
ln:
$port->close;
}
~

1 个答案:

答案 0 :(得分:1)

$ nmn只使用一次,因此根本不会复制该文件。

如果您要添加“use strict; use warnings”,我认为您的问题将会消失。在文件的开头,并使用“my”正确声明变量。 (就像你用$ ldir所做的那样)