免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2729 | 回复: 10
打印 上一主题 下一主题

怎样把数组中的数据分别赋予变量? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-27 16:21 |只看该作者 |倒序浏览
我现在把一个文本中的数据 读入了一个数组中。 现在就想把数组中的数据分别的赋予变量。

文本中的数据如下:

212.102.224.68      username      password     

-------------------------
想把 ip 给 $ip 这个变量   把username 给$username   把pwssord给$pwssword

写的目的就是在登录一个机器时去读取文本中定义好的ip和用户、密码等实现制动的登录。不知道怎么样去读取数组中的数据给变量了。

我是这样写的匹配怎么匹配不出来啊!!
  $buf[0]=~m/host_name=(.*)+\s/, $host_name=$1;
  $buf[1]=~m/user_name=(.*)+\s/, $user_name=$1;
  $buf[2]=~m/password=(S)+\s/,$password=$1;

请高手给指导改改我学习一下 先谢谢了!!

求职 : 数据库管理员
论坛徽章:
0
2 [报告]
发表于 2005-07-27 16:45 |只看该作者

怎样把数组中的数据分别赋予变量?

#!/usr/bin/perl

while (<>
{
        @ff=split(/ +/,$_);
        printf("host=%s user=%s pass=%s\n",$ff[0],$ff[1],$ff[2]);

}

论坛徽章:
0
3 [报告]
发表于 2005-07-27 17:15 |只看该作者

怎样把数组中的数据分别赋予变量?

my ($ip, $user, $pwd) = @buf;

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2005-07-27 17:16 |只看该作者

怎样把数组中的数据分别赋予变量?

my ($ip, $username, $password ) = split( /\s\+/, $line );

论坛徽章:
0
5 [报告]
发表于 2005-07-27 17:33 |只看该作者

怎样把数组中的数据分别赋予变量?

我是想:通过一个ini文件来实现自动的telnet到 一台远程主机自动的登录。


#!/usr/local/bin/perl
use Net::Telnet;
use Data:umper;
use Net::FTP;
use strict ;

my $host_name;
my $user_name;
my $password;

    my $telnet_hdl=new Net::Telnet (Timeout =>; 60, Prompt =>; '/[\$%#>;:]\s*$/');
    open FH , "/opt/prg/MM/trace/b.ini" || die "can't open file!" ;
    my @ff= <FH>; ;
    close FH ;
   while (<FH>
{
    my   @ff=split(/ +/,$_);
       printf("host=%s user=%s pass=%s\n",$ff[0],$ff[1],$ff[2]);

}
    my   $host_name=$ff[0];
    my   $user_name=$ff[1];
    my   $password=$ff[2];

    $telnet_hdl->;open("$host_name";
    print "ok\n";
    print $host_name,$user_name,$password ;

    $telnet_hdl->;login("$user_name","$password";
    print "ok!ok!\n";
    $telnet_hdl->;close;

我按照楼主的指导下改了一下 ip是传递进去了但是 没有登录上去提示是登录时间超时!!还请高手在给予指导一下!!

-------------显示的结果---------------------------------------------------------------
ok
212.102.224.68    aaa    bbbb

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-07-27 17:39 |只看该作者

怎样把数组中的数据分别赋予变量?

while (<FH>
{
   my   @ff=split(/ +/,$_);
      printf("host=%s user=%s pass=%s\n",$ff[0],$ff[1],$ff[2]);

}
   my   $host_name=$ff[0];
   my   $user_name=$ff[1];
   my   $password=$ff[2];
----
my @ff只有在上面 while(){} 有作用...所以下面$ff[0]..$ff[1]..$ff[2]都是空的..
另外在while中最好chomp($_);一下!!

论坛徽章:
0
7 [报告]
发表于 2005-07-27 17:43 |只看该作者

怎样把数组中的数据分别赋予变量?

@ff=split(/ +/,chmop($_));   我加上了 他还是登录不上去。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2005-07-27 17:46 |只看该作者

怎样把数组中的数据分别赋予变量?

你沒注意看我的帖子..
@ff只有在 while(){}中有作用...
所以下面 host_name,user_name,password都是空的...

论坛徽章:
0
9 [报告]
发表于 2005-07-27 17:52 |只看该作者

怎样把数组中的数据分别赋予变量?

那你说的是我应该是这样写吗?要是不是麻烦你老师给贴出来怎么写好吗??
谢谢!!



while (<FH>
{
my   @ff=split(/ +/,chmop($_));
     printf("host=%s user=%s pass=%s\n",$ff[0],$ff[1],$ff[2]);

}
  my   $host_name=$ff[0];
  my   $user_name=$ff[1];
  my   $password=$ff[2];

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
10 [报告]
发表于 2005-07-28 15:37 |只看该作者

怎样把数组中的数据分别赋予变量?

my @ff=();
my ($host_name,$user_name,$password);

while (<FH>
{
   @ff=split(/ +/,chmop($_));
    printf("host=%s user=%s pass=%s\n",$ff[0],$ff[1],$ff[2]);


    $host_name=$ff[0];
    $user_name=$ff[1];
   $password=$ff[2];
}
你需要先瞭解 my ,local, 與global variable的定義...
會比較容易瞭解上面為什麼要這麼寫...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP