我想逐行读取文件,每行分割字符串并打印出来。但脚本只打印偶数行。
文件:
line1:item1
line2:item2
line3:item3
line4:item4
line5:item5
line6:item6
和脚本:
$FILE = "file";
open($FILE, "<", "file") or die("Could not open file.");
while (<$FILE>) {
my $number = (split ":", <$FILE>)[1];
print $number;
}
输出:
item2
item4
item6
答案 0 :(得分:17)
这是因为你每循环读取两行
while (<$FILE>) { # read lines 1, 3, 5
my $number = (split ":", <$FILE>)[1]; # read lines 2, 4, 6
print $number;
}
使用此代替
while (<$FILE>) {
my $number = (split /:/)[1];
print $number;
}
答案 1 :(得分:4)
<$FILE>
会读一行。你在while中读了一行,在split中读了另一行。
答案 2 :(得分:0)
因为你在while中读了1行而在拆分时读了另一行。
答案 3 :(得分:0)
小错误。 您在while中读取了一行,在下一个直接行中读取了另一行(使用拆分)。