2016-07-02 17 views
13

Tôi có thói quen bắt đầu mỗi kịch bản của tôi vớiCó sự khác biệt giữa "cảnh báo sử dụng hay không;" và "sử dụng cảnh báo 'tất cả';"?

use strict; 
use warnings; 

Nhưng một số các nghiên cứu sinh-đại diện cao ở đây khuyên

use warnings 'all'; 

Nếu tôi hiểu chúng ngay, sau này thậm chí còn tốt hơn hơn cái đầu tiên. Vì vậy, tôi đọc qua các docs và thấy

Tất cả các cảnh báo được kích hoạt trong một khối bởi một trong những:

use warnings; 
use warnings 'all'; 

Ngay cả những Camel Book nói gì khác nhau:

use warnings; # same as importing "all" 

Vì vậy,

  • có một sự khác biệt, hoặc
  • là nó chỉ hơn trong tương lai chống (trong trường hợp phiên bản tương lai của cảnh báo vấn đề Perl chúng ta không nhận thức được ngay bây giờ và use warnings; sẽ không bắt), hoặc
  • là nó chỉ là một thói quen khác, ví dụ như ps -efps aux? Một số người sử dụng điều này trong khi những người khác thích cái kia.

Trả lời

14

Hiện nay,

use warnings; 

tương đương với

use warnings 'all'; 

Tuy nhiên, đã có talk on perl5porters thay đổi nó để có nghĩa là

use warnings 'default'; 

mới cảnh báo "ít quan trọng" sẽ là được thêm vào danh mục "tất cả" nhưng không được hiển thị theo mặc định. Vì có vẻ như sự thay đổi này đang được xem xét nghiêm túc, nên an toàn hơn đối với use warnings 'all'; một cách rõ ràng.

thảo luận trước đây về p5p:

RFC: Support for new warning categories outside of "all"

I've added support for new warning categories outside of "all" to blead

+0

Liên kết bạn đã là điểm rất quan trọng. Vì vậy, để sử dụng cá nhân tôi sẽ là người _Charley_ (từ [thảo luận bạn đã đề cập] (http://www.nntp.perl.org/group/perl.perl5.porters/2015/06/msg228467.html)) và 'sử dụng cảnh báo 'tất cả';' mà sẽ đưa ra cảnh báo mới và chưa biết trong tương lai trong khi sử dụng văn phòng tôi sẽ làm như _Tallulah_ sẽ và gắn bó với 'sử dụng cảnh báo' và bảo thủ hơn. – PerlDuck

+3

Re "* an toàn hơn để' sử dụng cảnh báo 'tất cả'; 'rõ ràng *, Đặc biệt đối với các lập trình viên Perl ít kinh nghiệm hơn, vì chúng sẽ nhận được nhiều lợi ích nhất từ ​​các cảnh báo nghiêm ngặt hơn. Tôi chống lại sự thay đổi bởi vì nó không thực tế khi mong đợi các lập trình viên Perl ít kinh nghiệm biết sử dụng 'cảnh báo sử dụng' tất cả '; 'thay vì chỉ' sử dụng cảnh báo;' trong phạm vi của tài liệu gợi ý về sau. Nó cũng là một sự thay đổi không tương thích ngược với những người đã hứa rằng 'sử dụng cảnh báo;' sẽ bật tất cả các cảnh báo.] – ikegami

+0

Chỉ muốn hỏi cùng một câu hỏi! Và trong khi câu trả lời là tuyệt vời, tôi hy vọng rằng thay đổi đó ** sẽ không bao giờ đã xảy ra ** Thời gian-to-thời gian tôi ghét một số porters perl.; ( – jm666

2

Một cách rõ ràng hơn cái kia, nhưng như đã lưu ý trong tài liệu, chúng có cùng tác dụng. Có lẽ tốt hơn nên sử dụng danh sách nhập 'all' để làm rõ hơn rằng tất cả các cảnh báo đều được bật thực tế. Điều này cũng hữu ích cho những người có thể mới làm quen với Perl. Khi nghi ngờ, rõ ràng thường tốt hơn là ngầm định.

Các vấn đề liên quan