请问上perl中为什么只能输出隔行的信息啊
请教下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);