我希望这个问题不是太基础 - 我很缺乏经验 perl的。我的问题:我想以块的形式阅读和处理文件,但是 块的分隔符可能会有所不同。我把整个文件放在一个变量中 $文本。举个例子:
One
Two
BEGIN
Three
Four
END
Five
我想通过块来逐步浏览此文件。我想读到下一个 空行并将结果保存(并处理)为一个块,因此“一”和 “两个”将是前两个块。如果新的块开头 关键字“BEGIN”,我想阅读并处理直到关键字“END”,所以 chunk将是“Three \ n Four”。我怎么在perl中这样做?
我已经阅读了有关“索引”功能的内容,但无法让它一步一步完成 我的文字。
非常感谢!
答案 0 :(得分:3)
您可以将输入记录分隔符设置为空字符串以启用“段落”模式。然后使用触发器操作符来处理BEGIN / END之间的范围;类似的东西:
perl -nle '$/="";if (/^BEGIN/../^END/) {print "> $_"} else {print "[ $_ ]"}' myfile