Đây là một yêu cầu tính năng thực sự tốt. Thật không may, ngắn của những gì tác giả mô-đun đã được lập trình, perl không có kiến thức nếu các mô-đun có XS hoặc biến thể Perl tinh khiết (PP) và nếu động cơ đã được nạp thông qua dự phòng.
Ví dụ này bạn đưa ra được kết hợp bởi hiệu ứng mà chúng được đóng gói trong cùng một bản phân phối và mô-đun và tất cả được thực hiện trong nội bộ. Tôi muốn vá nó theo quy ước của CPAN: DateSimple
, yêu cầu DateSimple::PP
và đề xuất DateSimple::XS
. Đây là cách Text::CSV
và những người khác làm điều đó. Phương pháp này cho phép sử dụng phương thức khởi tạo ::XS
trực tiếp để buộc sử dụng XS
và đồng thời thậm chí không cài đặt biến thể pureperl. Ngoài ra, bạn có thể gói chúng lại với nhau - đây là những gì Template::Stash
thực hiện với Template::Stash::XS
. Bước đầu tiên để nhận được bất cứ điều gì thống nhất là nhận được chức năng ad-hoc.
Loại điều này có thể dễ dàng thực hiện nếu tất cả các mô-đun được lấy trong một Moose::Role
cung cấp một số thuộc tính cơ bản _xs_class_name
, _pp_class_name
và engine_override
. Nhưng, một lần nữa, không có gì bây giờ mà ngay cả hạt giống một API thống nhất để đạt được điều này.
Nguồn
2010-09-07 14:44:23
Tôi đã trả lời theo cách tiếp cận chung, nhưng như là một 'DateTime' sang một bên là bản phân phối peract defacto để biểu diễn ngày tháng. –
@Evan Carroll, DateTime có thể là phổ biến nhất (và tính năng đầy đủ), nhưng nó hầu như không phải là người duy nhất sử dụng. Có rất nhiều mô-đun ngày Perl. – cjm