2012-04-12 2 views
0

나는 Perl 프로그램의 모든 경고를 처리하고이 문제에 약간의 어려움을 겪고있다. perldiag에서"인용 부호가없는 문자열은 미래의 예약어와 충돌 할 수 있습니다"라는 경고의 이유는 무엇입니까?

Unquoted string "lib" may clash with future reserved word at /home/user/bin/ttt.v01.pl line 17. 
    line 17: use lib ("${HOME}/.lib"); 
Unquoted string "sync" may clash with future reserved word at /home/user/bin/ttt.v01.pl line 23. 
    line 23: our $SYNC_HOSTS = "${HOME}/.sync.hosts"; 
Unquoted string "config" may clash with future reserved word at /home/user/bin/ttt.v01.pl line 28. 
    line 28: our $USAGE_TEXT = "[-hd] -a <config> -l <location>"; 

:

지 않은 문자열 "% S"미래의 예약어 (예약 W)

당신은 언젠가는 예약어으로 주장 될 수있는 bareword는 사용과 충돌 할 수 있습니다. 그러한 단어를 따옴표로 묶거나 대문자로 바꾸거나 밑줄을 그 안에 삽입하는 것이 가장 좋습니다. 서브 루틴으로 선언 할 수도 있습니다.

나는이 모든 것을 큰 따옴표로 묶어 놓았으므로 나는 무엇을 놓치고 있는지 잘 모르겠습니다.

+7

이 경고 중 하나를 재생산하는 최소 스크립트를 게시 할 수 있다면 매우 유용 할 것입니다. – jpstrube

+2

'ttt.v01.pl'의 1 ~ 17 행을 포함하도록 질문을 편집하십시오. –

답변

1

흠, 어쩌면 당신은 컴파일러가 잘못된 경고를보고하는 줄 17 이전에 필적할만한 큰 따옴표가 있을까요?

+1

나는 똑같은 생각을하고있었습니다. 'use.'에없는'lib'을'use'에없는 것으로 생각하기 때문에'use. '에없는'lib.lib'에 플래그를 지정합니다. – Axeman

+0

감사! 그거였다 – harmonic

0

인용 부호가 누락되었습니다.

프로그램 편집기를 사용하고 있습니까, 아니면 메모장을 사용하고 있습니까?

대부분의 프로그램 편집기에는 누락 된 인용 부호를 쉽게 찾을 수있는 구문 강조 표시 기능이 있습니다. 나는 VIM을 사용하는데 이는 인용 된 문자열을 빨간색으로, Perl은 녹색으로 표시한다. 갑자기 내 다양한 ​​Perl 함수가 모두 빨간색으로 표시되고 따옴표 붙은 텍스트가 빨간색으로 표시되지 않으면 나는 어딘가에서 따옴표가 빠져 있음을 즉시 알 수 있습니다.

질문을 편집하고 프로그램의 처음 20 줄을 포함하십시오.

관련 문제