首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

请问上perl中为什么只能输出隔行的信息啊

2013-01-04 
请教下perl中为什么只能输出隔行的信息啊?data.txtCD4-H2BK5ac 29000CD4-H2BK5ac 40001CD4-H4K12ac 40008C

请教下perl中为什么只能输出隔行的信息啊?
data.txt
CD4-H2BK5ac 29000

CD4-H2BK5ac 40001

CD4-H4K12ac 40008

CD4-H4K12ac 50005

CD4-H4K12ac 80034


open(IN,"<data.txt");
use Data::Dumper;
my %hash = ();
while(<IN>){
    my (domain, ip) = split(/\s+/, <IN>);
    $hash{$domain} = $ip;
}
print Dumper(%hash);
close (IN);

很奇怪为什么只能输出隔行的信息啊?
[解决办法]
split 缺省就是用空格串分隔的
[解决办法]
不加参数的split,默认以空格分隔变量 $_ ,

split ' ',$_
你在while循环里又用到<IN>,不知道是什么意思。
[解决办法]
split(/\s+/, <IN>);
再用 <IN> 就又读了下一行,前面 while 读的一行就废弃了
[解决办法]
open(IN,"<data.txt");
use Data::Dumper;
my %hash = ();
while($temp=<IN>){
    my ($domain, $ip) = split(/\s+/, $temp);
    $hash{$domain} = $ip;
}
print Dumper(%hash);
close (IN);


热点排行