【发布时间】:2015-01-28 18:31:25
【问题描述】:
当我注意到语法检查导致警告无用使用常量 (1) 时,我正在编写一个模块作为我的应用程序的一部分。这是为什么呢?
常量是模块末尾的强制1,通常会被警告忽略,如perldoc perldiag 所说:
对于等于 0 或 1 的数值常量,不会发出此警告,因为它们经常用于诸如
之类的语句中1 while sub_with_side_effects();
(可能有更好的来源。毕竟1 在文件末尾是完全需要的,不要被警告。)
但是如果use bigint 几乎是空的模块也会生成警告。
package Foo;
use bigint;
1;
对于这个简单的文件语法检查会产生以下警告:
$> perl -Wc Foo.pm
Useless use of a constant (1) in void context at Foo.pm line 5.
Foo.pm syntax OK
除了Put long hex numbers in sqlite 之外,我找不到对bigint 和警告消息的任何引用,但我认为这并不能真正解决我的问题。
我的 Perl 是 Cygwin 上的 v5.14.4,bigint 0.36。
【问题讨论】:
-
有趣的发现。我猜这是因为它不再是“1”,因此可以忽略,而是一种特殊的“1”。
标签: perl perl-module bigint perlsyn