免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 望尘莫及
打印 上一主题 下一主题

各位大虾帮一把! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-01-14 09:57 |只看该作者

各位大虾帮一把!

上面一个带括号的表达方式类似my $ip的形式定义局部变量,下面一种形式是在非严格语法的脚本里头当作全局变量来使用

论坛徽章:
0
12 [报告]
发表于 2005-01-14 10:16 |只看该作者

各位大虾帮一把!

谢谢jeff_gu解答!

论坛徽章:
0
13 [报告]
发表于 2005-01-14 11:08 |只看该作者

各位大虾帮一把!

我的理解和jeff_gu有点差异。
()方式是数组敷值方式。表示后面的可能是个数组,
  1. ($ip) =($key,$key2,。。。。);
复制代码
那么,$ip其实就是取数组的第一个值。
这样也许不好理解。
写成
  1. ($ip,$unused) =($key,$key2,。。。。);
复制代码

也许就好理解一点,但是 $unused既然没有用处,就简化了吧。

论坛徽章:
0
14 [报告]
发表于 2005-01-14 11:25 |只看该作者

各位大虾帮一把!

楼上的理解是错的,如果是数组赋值的话必有下标,不然无法知道是赋给哪个数组

在上面的用法中,两个没有分别

论坛徽章:
0
15 [报告]
发表于 2005-01-14 11:26 |只看该作者

各位大虾帮一把!

Osment 在这里$ip应该是一个值呀,怎么会是个数组了?

论坛徽章:
0
16 [报告]
发表于 2005-01-14 11:42 |只看该作者

各位大虾帮一把!

呵呵:) 写个Demo测试下吧。

  1. #!/usr/bin/perl

  2. print "Content-Type: text/html\n\n";

  3. $mykey = 'Framed-IP-Address  =   127.0.0.1 Framed-IP-Address  =   192.168.0.2 ';

  4. ($ip) = ( $mykey =~ /Framed-IP-Address\s*=\s*(\d+\.\d+\.\d+\.\d+)/ ) ;

  5. $ip2 = ( $mykey =~ /Framed-IP-Address\s*=\s*(\d+\.\d+\.\d+\.\d+)/ ) ;

  6. print '$ip='.$ip;
  7. print '$ip2='.$ip2;
复制代码

$ip = 127.0.0.1
而 $ip2 =1
表示 $ip2获得只是后面数组的个数。。

TO 望尘莫及:因为后面的数字来自正则,可能多次匹配,所以。。觉得可以是数组。(可能理解有误)

论坛徽章:
0
17 [报告]
发表于 2005-01-14 12:06 |只看该作者

各位大虾帮一把!

($ip) = ( $mykey =~ /Framed-IP-Address\s*=\s*(\d+\.\d+\.\d+\.\d+)/ ) ;
取的是匹配的第一个值
$ip2 = ( $mykey =~ /Framed-IP-Address\s*=\s*(\d+\.\d+\.\d+\.\d+)/ ) ;
按我理解是因为有匹配,所以返回成功(1)也是就个true给$ip2
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP