2009-08-01 27 views
5

Tôi hơi bối rối bởi lời khuyên xung đột giữa các tài liệu trước 5.10.0 và mô-đun version gần đây hơn. Perl Best Practices làm cho nó khá rõ ràng rằng phiên bản chuỗi ('v1.0.3') là xấu và một là nghĩa vụ phải chỉ định một phiên bản như sau:Làm thế nào để bạn chỉ định một phiên bản gói trong Perl?

use version; our $VERSION = qv('1.0.3'); 

nhưng các module phiên bản nói rằng chúng ta đang trở lại với việc sử dụng chuỗi phiên bản:

use version 0.77; our $VERSION = qv("v1.2.3"); 

Chúng tôi đã thoái lui hay có lý do nào đó không?

+0

Xem thêm http://stackoverflow.com/questions/1878108/whats-the-modern-way-of-declaring-which-version-of-perl-to-use – Ether

Trả lời

8

Trích dẫn của bạn từ Thực tiễn tốt nhất Perl là không hoàn toàn đúng. Cụ thể, trần vstrings dạng

our $VERSION = v1.0.3; 

được khuyến khích. Trong phiên bản mới nhất của version.pm, khuyến cáo là sử dụng chuỗi đúng:

use version 0.77; our $VERSION = qv("v1.2.3");    # shorthand 

Chức năng này đã được bổ sung để hỗ trợ khả năng đọc, trong khi đặc biệt tránh những cái bẫy của dây trần được mô tả here.

Như trang doc bạn liên kết với nói, bạn có thể sử dụng các phiên bản mà không có tiền đang chờ giải quyết 'v' sử dụng built-in logic trong Perl 5.10:

Nếu bạn có một module có sử dụng một số thập phân $ VERSION (dấu chấm động) và bạn không có ý định thay đổi điều đó, mô-đun này không dành cho bạn. Không có gì mà version.pm giúp bạn vượt qua một bài tập $ VERSION đơn giản.

Vì vậy, câu trả lời cho câu hỏi của bạn là: sử dụng cú pháp "v1.0.3" mới nếu bạn đang viết mã mới sử dụng phiên bản.pm. Dính vào một số đơn giản nếu đó là cách mã cũ của bạn được viết hoặc nếu bạn không muốn phụ thuộc rõ ràng vào mô-đun.pm.

+2

Phúc âm mới nhất là vstrings của biểu mẫu v1.0.3 như bạn đưa ra ở trên là okay nhưng REALLY BARE vstrings của dạng 1.0.3 (hai số thập phân, không v) là ác, tà ác, tà ác. Điều này là trực tiếp từ perl5-porters. – tsee

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