Dan*_*ilo 1 string perl split file line
我想逐行读取文件,每行分割字符串并打印出来.但脚本只打印偶数行.
文件:
line1:item1
line2:item2
line3:item3
line4:item4
line5:item5
line6:item6
Run Code Online (Sandbox Code Playgroud)
和脚本:
$FILE = "file";
open($FILE, "<", "file") or die("Could not open file.");
while (<$FILE>) {
my $number = (split ":", <$FILE>)[1];
print $number;
}
Run Code Online (Sandbox Code Playgroud)
输出:
item2
item4
item6
Run Code Online (Sandbox Code Playgroud)
Ola*_*che 17
这是因为每轮循环读取两行
while (<$FILE>) { # read lines 1, 3, 5
my $number = (split ":", <$FILE>)[1]; # read lines 2, 4, 6
print $number;
}
Run Code Online (Sandbox Code Playgroud)
改用它
while (<$FILE>) {
my $number = (split /:/)[1];
print $number;
}
Run Code Online (Sandbox Code Playgroud)