Tôi đã viết một mô-đun như một phần của ứng dụng khi tôi nhận thấy kết quả kiểm tra cú pháp trong cảnh báo về việc sử dụng vô số hằng số (1). Tại sao vậy?Tại sao Perl cảnh báo về "hằng số vô dụng 1" khi sử dụng bigint?
Hằng số là bắt buộc 1
ở phần cuối của các mô-đun mà thường bị bỏ qua bởi những cảnh báo như perldoc perldiag
nói:
Cảnh báo này sẽ không được cấp cho các hằng số bằng 0 hoặc 1 vì chúng là thường được sử dụng trong báo cáo như
1 while sub_with_side_effects();
(có lẽ một nguồn thậm chí tốt hơn cho điều đó. Sau khi tất cả 1
ở phần cuối của file là hoàn toàn mong muốn và không phải là Warne d.)
Nhưng cảnh báo được tạo ngay cả đối với các mô-đun gần như trống nếu chúng use bigint
.
package Foo;
use bigint;
1;
Đối với cú pháp kiểm tra tập tin đơn giản này tạo ra các cảnh báo sau đây:
$> perl -Wc Foo.pm
Useless use of a constant (1) in void context at Foo.pm line 5.
Foo.pm syntax OK
tôi không thể tìm thấy bất kỳ tài liệu tham khảo để bigint
và thông điệp cảnh báo trừ Put long hex numbers in sqlite nhưng điều này không thực sự giải quyết vấn đề của tôi, tôi suy nghĩ.
Perl của tôi là v5.14.4 trên Cygwin với bigint 0.36.
[Nghe có vẻ giống như một lỗi.] (Http://perldoc.perl.org/perlbug.html) – Dan
Thú vị find. Tôi đoán đó là bởi vì nó không còn '1' và do đó có thể bỏ qua, và thay vào đó là một loại đặc biệt '1'. – Sobrique