2013-07-31 2 views
1

Perl 초보자로서 나는 때때로 컴파일 오류가 발생하고 그것을 찾기 위해 많이 검색해야합니다. 결국 그것은 줄 끝 부분에 그냥 누락 된 세미콜론입니다. 세미콜론이 누락 된 일부 구문 오류는 Perl에 의해 검사되지만 일반적으로 검사되지는 않습니다. 이 수표를받을 수있는 방법이 있습니까?누락 된 세미콜론 일반 확인

편집 : 나는 펄 :: 평론가에 대해 알고 있지만 ATM을 사용할 수 없습니다

. 그리고 그것이 일반적으로 누락 된 세미콜론을 검사하는지는 알 수 없습니다.

+3

이다; 따라서 언어 별 질문보다는 도구 별 질문이 더 많습니다. 어떤 편집기/IDE를 사용합니까? –

+1

(예를 들어, 괄호 나 세미콜론이 아닌 모든 줄 끝 문자를 강조 표시 할 수있는'[^; {}] $'에 대한 검색 만 할 수 있습니다.) –

+0

vim을 사용하고 있습니다. 그 힌트에 감사드립니다. 그러나 문서화가 잘된 longs 스크립트의 경우에는 잠시 동안 검색해야합니다. 나는 보통 내 의견을 끝내지 않기 때문에; – EverythingRightPlace

답변

2

세미콜론은 실제로 Perl에서 의미가 있고 장식용으로 만 사용되는 것이 아니기 때문에 모든 도구 (심지어 Perl 인터프리터 자체)도 실제로 세미콜론에서 벗어나려고했는지 여부를 알 수 없습니다. 아니. 따라서 귀하의 질문에 대한 일반적인 대답은 없습니다. 코드를 검토하고 코드가 올바른지 확인해야합니다.

내 의견에 언급했듯이, 잠재적으로 잘못된 행을 찾는 프로세스를 신속하게 처리하기 위해 편집기를 사용하여 시도해 볼 수있는 다양한 트릭이 있습니다. 그러나 손으로 검사하고 수정하거나 새로운 문제를 유발할 위험이 있습니다.

+0

물론 일반적인 규칙은있을 수 없다는 것이 맞습니다. 검색을 최소화하는 방법을 찾고 있었고 귀하의 팁이 정말 도움이됩니다. – EverythingRightPlace

1

구문 검사는 perl -c이지만 프로그램을 완전히 실행하려고하는 것과 다릅니다. 유연하고 결정 불가능한 구문으로 인해 일반적으로 원하는 것을 할 수 없습니다. 그것이 편안함과 표현력의 단점입니다.

안정적인 최신 Perl로 업그레이드하면 구문 분석기의 오류 메시지가 지난 수년 동안 정확하고 정확 해졌으며 누락 된 세미콜론의 여러 상황을 올바르게 인식합니다.

많은 구문 분석기/다른 언어에서 사용할 수있는 어림짐작 : 오류가 발생하지 않는 경우 이전에 몇 줄을 살펴보십시오.

+0

예이 엄지 손가락 규칙은 제가 기대했던 것입니다. 경험 많은 Perl 사용자라면 그렇게 할 것입니다.나는 이것을 내 기억에 넣어야 만한다.) – EverythingRightPlace

1

use diagnostics;은 보통 use warnings;과 같은 유용한 힌트를 제공합니다. 일관된 코딩 스타일을 유지하려고 시도하면 perlstyle을 확인하십시오. Perl::Critic online도 사용할 수 있습니다.

또한 일반적인 조언으로 패키지와 모듈을 사용하는 방법을 배우고 코드를 서브 그룹으로 그룹화하고 배열, 목록 및 해시 구문을 연구하십시오. 일반적인 실수는 익명의 hashref 할당 후 ;을 잊고 : 이것은 당신이하지 런타임에, 당신의 편집기에서 수행되어야한다 뭔가 정말

my $hashref = { a => 5, b => 10}; 
+0

나는 항상'use strict'와'use warnings '을 사용하고 있지만'use diagnostics'는 나를위한 새로운 것이다. 고마워. – EverythingRightPlace

관련 문제