0

我实际上想要做的是,从文本文件中提取行范围并在另一个文件中打印范围。字符串的起始范围存储在@secarr 中,相应的字符串结束范围存储在@exarr 中。我现在面临的问题是在 EOF 附近发现了 $secarr[4] 和 $exarr[4] 范围,因此输出文件一直到那里结束。但是在 $secarr[4] 和 $exarr[4] 范围之前存在 $secarr[5] 和 $exarr[5] 以及许多其他范围。

请给我一个出路。

在此先感谢, 法埃兹

4

2 回答 2

3

简单的方法是为每个范围重新打开文件。你也可以试试:

  • 如果文件不是很大,您可以将其读入数组 ( my @array = <$IN>;)。对于每个范围,您只需打印数组切片。
  • 您可以只浏览一次文件,检查您是否在每一行输入/离开任何范围。记住当前活动的范围并将每一行输出到所有这些范围(您的范围可以重叠吗?)
于 2012-08-02T14:25:47.250 回答
0

您可能想看看Tie::File,它为您提供了一个简单的文件记录界面。

于 2012-08-02T21:20:10.167 回答