【问题标题】:Parsing a text file perl解析文本文件 perl
【发布时间】:2013-01-15 20:55:15
【问题描述】:

作为管道一部分的程序正在解析输出文本文件但引发错误。这是代码

1 open(PRED, '<', $predfile);
2 my $pred_text;
3 { local $/; $pred_text = <PRED>; }
4 close PRED;

5 my @pred_blocks = split(/^\-+$/, $pred_text);

6  foreach my $pred_block (@pred_blocks) {
7     $pred_block =~ /^>(.+)$/m or die("Internal error while parsing $predfile");
   .....
}  

第 3 行之后应该包含 $pred_text 什么?我想整个文本文件。我还想我应该从文本文件中获取不同的块,但第 5 行的列表只包含一个代表整个文件的块。第 5 行的正则表达式在做什么?它是如何分割文本的?在第 7 行 $pred_block =~ /^>(.+)$/m 到底是什么意思?

有什么建议吗?

非常感谢

尼诺

【问题讨论】:

    标签: regex perl parsing


    【解决方案1】:
    • 第3行:读取整个文件,见Perl Idioms Explained
    • 第 5 行:不将文本分割成块。改成my @pred_blocks = split(/^-+$/m, $pred_text);,见Modifiers
    • 第 7 行:检查当前块是否包含以 &gt; 开头的行。如果没有,它会中止脚本

    【讨论】:

      猜你喜欢
      • 2012-10-09
      • 2015-10-14
      • 2012-10-25
      • 2016-01-22
      • 2012-06-08
      • 1970-01-01
      • 2013-03-06
      • 2014-09-04
      • 2019-05-19
      相关资源
      最近更新 更多