我有一个看起来像这样的文本文件:
Id:001;status:open;Id:002;status:open;Id:003;status:closed;
Id:004;status:open;Id:005;status:closed;Id:006;status:open;
....
....
这是我的代码:
#!/usr/bin/perl -w
use strict;
open IN, "<", "ABC.txt"
or die"Can not open the file $!";
my @split_line;
while(my $line = <IN>) {
@split_line = split /;/, $line;
for (my $i = 0; $i <= $#split_line; $i++) {
print "$split_line[$i]"." "."$split_line[$i+1]\n";
}
}
实际o / p:
Id:001 status:open
status:open Id:002
Id:002 status:open
status:open Id:003
Id:003 status:closed
status:closed
......
......
预期的o / p是:
Id:001 status:open
Id:002 status:open
.....
....
我不知道为什么它会输出其他行。任何身体能帮助我吗?
嘿,我很抱歉,为此,我必须修改输出:
实际上输出现在就像
**Id Status**
001 open
002 open
...
有人可以帮助我吗?
答案 0 :(得分:2)
将循环迭代器更改为$i+=2
。当你只增加1时,你会在下一个循环中再次获得一些值。
for (my $i = 0; $i <= $#split_line; $i += 2) {
print "$split_line[$i]"." "."$split_line[$i+1]\n";
}