LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1304|回复: 1

我在perl中用与操作怎么出来的数据有问题啊?

[复制链接]
发表于 2007-7-2 13:27:45 | 显示全部楼层 |阅读模式
下面是程序和运行时的结果
#!/usr/bin/perl

print "lease enter you ip address:\n";
chomp($ip_addr=<STDIN>);
@ip_temp=split(/\./, $ip_addr);

print "lease enter you netmask:\n";
chomp($net_mask=<STDIN>);
@net_temp=split(/\./, $net_mask);

for($i=0; $i<4; $i++)
{
  $ip_unch[$i]=(($ip_temp[$i]) & ($net_temp[$i]));
  printf "%b, %b, %b\n", $ip_temp[$i], $net_temp[$i], $ip_unch[$i];
}
=======================================
C:\Documents and Settings\Alex>perl -w c:\test3.pl
Please enter you ip address:
192.168.0.1
Please enter you netmask:
255.255.255.0
11000000, 11111111, 1010
10101000, 11111111, 101000
0, 11111111, 0
1, 0, 0
 楼主| 发表于 2007-7-13 08:46:54 | 显示全部楼层
在IRC上得到hellwolf和hers的帮忙,终于把问题解决了。@ip_temp=split(/\./, $ip_addr);这句要写成@ip_temp=map {int} split(/\./, $ip_addr);
perl没把输入数据转成int型的,所以要用map {int} 使它变成int型的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表