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予約語)あなたはいつか予約語として主張されるかもしれない裸の単語を使用しました。そのような単語を引用符で囲むか、何らかの形で大文字にするか、アンダーバーを挿入するのが最善です。サブルーチンとして宣言することもできます。

私はこれらすべてを二重に引用しているので、何が欠けているのかわかりません。

4

2 に答える 2

1

うーん、17行目の前に一致しない二重引用符があり、コンパイラが間違った警告を報告する可能性がありますか?

于 2012-04-12T12:54:36.263 に答える
0

引用符がない匂いがします!

プログラムエディタを使用していますか、それともメモ帳を使用していますか?

ほとんどのプログラムエディタには構文の強調表示があり、欠落している引用符を簡単に見つけることができます。VIM引用符で囲まれた文字列を赤で、Perl関数を緑で表示するを使用します。突然、さまざまなPerl関数がすべて赤で表示され、引用符で囲まれたテキストが赤で表示されない場合、どこかに引用符がないことがすぐにわかります。

質問を編集して、プログラムの最初の20行を含めます。

于 2012-04-12T21:23:42.363 に答える