Perl中的文件处理:从特定行读取文件

时间:2014-06-08 10:15:25

标签: perl file-io scripting

perl中没有办法从特定的行号开始读取文件。每当我们在perl中读取文件时,我们都会while(<$fileHandler>)使perl解释器从头开始读取文件。如果我不想阅读这些内容该怎么办?

2 个答案:

答案 0 :(得分:3)

您可以从头开始跳过行,然后使用$start_line

开始处理
my $start_line = 10;
while(<$fileHandler>) {
  next unless $. == $start_line .. undef;

  # ..
}

range operator ..还提供以下简写:

  

如果标量“..”的任一操作数是常量表达式,如果该操作数与当前输入行号(==变量)相等($.),则该操作数被视为true。 / p>

因此,上述内容可以简化为:

while(<$fileHandler>) {
  next unless 10 .. undef;

  # ..
}

答案 1 :(得分:2)

因为您无法知道一行的长度,您必须从文件的开头读取。

如果您知道线条有多宽,因为您有固定的线宽或其他方案,那么您可以在文件中寻找该位置。否则你必须阅读每个角色并搜索特殊的&#39;换行符。

文本文件只是一长串字符。线条没什么特别的。