2013-01-15 4 views
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 행의 목록에는 전체 파일을 나타내는 블록이 하나만 포함되어 있습니다. 5 행의 정규 표현식은 무엇입니까? 어떻게 텍스트를 분할하고 있습니까? 그리고 7 행에서 $ pred_block = ~ /^> (.+)$/m은 정확히 의미합니까?

의견이 있으십니까?

많은 감사

니노

답변

5
  • 행 3 : 전체 파일이 Perl Idioms Explained
  • 5 호선을 볼 읽 블록에 텍스트를 분할하지 않습니다. my @pred_blocks = split(/^-+$/m, $pred_text);으로 변경하십시오. Modifiers
  • 라인 7 : 현재 블록에 >으로 시작하는 라인이 포함되어 있는지 확인하십시오. 그렇지 않으면 나중에 유용 할 문서에 대한 링크는
+0

+1과 같이 스크립트를 중단합니다. –

관련 문제