0

パイプラインの一部であるプログラムは、出力テキスト ファイルを解析していますが、エラーが発生します。ここにコードがあります

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 行目のリストには、ファイル全体を表すブロックが 1 つしか含まれていません。5行目の正規表現は何をしていますか? テキストをどのように分割していますか?7行目で、 $pred_block =~ /^>(.+)$/m は正確には何を意味するのでしょうか?

なにか提案を?

どうもありがとう

ニノ

4

1 に答える 1

5
  • 行 3: ファイル全体を読み取ります。Perl Idioms Explainedを参照してください。
  • 5 行目:テキストをブロックに分割しません。に変更します。修飾子my @pred_blocks = split(/^-+$/m, $pred_text);を参照してください
  • 7 行目: 現在のブロックに で始まる行が含まれているかどうかを確認し>ます。そうでない場合は、スクリプトを中止します
于 2013-01-15T12:55:15.077 に答える