130723,-001,1.14,130725,+002,4.20,130731,+006,1.52,130728
130725,+002,4.20,130731,+006,1.52,130728,-003,0.00,130731
130731,+006,1.52,130728,-003,0.00,130731,+003,1.00,130731
130728,-003,0.00,130731,+003,1.00,130731,+000,0.00,130729
130731,+000,0.00,130729,-002,1.00,130728,-001,0.00,130728
以上是日志文件的一部分。日志文件中的每一行始终具有相同的长度,并且具有与您在上面看到的相同的模式。我需要读取文件并将每行中位置 42 到 46 的所有行都放在一个数组中。在上面的案例中,我们正在查看以下数字:
+006 -003 +003 +000 -001
有人可以指出我正确的方向吗?
编辑 :
感谢 Amon 的建议。
我最终得到了这个代码以供将来参考。
open (FILE, $filename) or die "Couldn't open log: $!";
while (<FILE>) {
if ((split /,/)[8] == "+003"){
push @data, $_ }}
close FILE;
foreach(@data)
{
print "$_\r\n";
}
如果这个文件变得非常大,我在考虑未来我应该采取哪些步骤来快速优化流程?