2012-04-12 22 views
0

我正在嘗試通過Perl程序中的所有警告,並且遇到了一些麻煩。警告「未加引號的字符串...可能與未來保留字衝突」的原因是什麼?

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>"; 

perldiag

加引號的字符串 「%S」 可能與將來的保留字

(W預留),您使用的可能有一天是屬於保留字一個裸字衝突。最好將這樣的單詞放在引號中,或者以某種方式將其大寫,或者在其中插入一個下劃線。您也可以將其聲明爲子例程。

我有這些全部雙引號,所以我不知道我錯過了什麼。

+7

如果您可以發佈重現此警告之一的最小腳本,這將非常有幫助。 – jpstrube 2012-04-12 13:08:51

+2

請編輯您的問題,以包含'ttt.v01.pl'的第1至17行。 – 2012-04-12 14:10:28

回答

1

嗯,也許你有一個無法匹配的第17行之前的雙引號,這會導致編譯器報告錯誤的警告?

+1

我在想同樣的事情。它將'/.lib'中的'lib'標記爲'use',因爲它認爲'use'後的那個被引用。 – Axeman 2012-04-12 14:15:20

+0

謝謝!就是這樣 – harmonic 2012-04-20 18:43:31

0

我聞到缺少引號!

您是使用程序編輯器還是使用記事本?

大多數程序編輯器都有語法高亮顯示功能,可以輕鬆幫助您找到缺少的引號。我使用VIM,它將引用的字符串置爲紅色,將Perl函數置於綠色。如果我突然看到我所有的各種Perl函數都是紅色的,並且引用的文本不是紅色的,我立即知道我在某處丟失了一個引號。

編輯您的問題,幷包括程序的前20行。

相關問題