警告“未加引号的字符串......可能与未来的保留字冲突”的原因是什么?

时间:2012-04-12 12:51:04

标签: perl warnings

我正在尝试处理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保留)您使用了有朝一日可能被声称为保留字的裸字。最好在引号中加上这样的词,或以某种方式将其大写,或在其中插入一个下划线。您也可以将其声明为子例程。

我把这些全部加上引用,所以我不确定我错过了什么。

2 个答案:

答案 0 :(得分:1)

嗯,也许你在第17行之前有一个无与伦比的双引号,这会导致编译器报告错误的警告?

答案 1 :(得分:0)

我闻到了一个缺少的引号!

您使用的是程序编辑器还是使用记事本?

大多数程序编辑器都有语法突出显示,可以轻松帮助您找到缺少的引号。我使用VIM将引用的字符串设置为红色,将Perl函数设置为绿色。如果我突然看到我的各种Perl函数都是红色的,并且引用的文本不是红色的,我立刻就知道我在某个地方错过了一个引用。

修改您的问题并添加您计划的前20行。