Dường như có một pragma mới có tên là parent
có độ tương tự như base
. parent
làm điều gì đảm bảo một mô-đun mới (không phải cốt lõi)? Tôi đang thiếu cái gì đó?Sự khác biệt giữa phụ huynh và cơ sở trong Perl 5 là gì?
Trả lời
base
cố gắng thực hiện quá nhiều thứ — tự động xử lý mô-đun tải nhưng cũng cho phép thiết lập kế thừa từ lớp đã tải (có thể từ tệp có tên không dựa trên tên mô-đun). Để làm cho nó hoạt động, có một số hackery gây ra kết quả đáng ngạc nhiên trong một số trường hợp. Thay vì phá vỡ tính tương thích ngược, một pragma thay thế mới, parent
được giới thiệu với ngữ nghĩa sạch hơn.
parent
sẽ là mô-đun chính kể từ 5.10.1.
Cập nhật: quên rằng base
xử lý fields
(nếu bạn đang sử dụng fields
pragma), mà parent
không làm.
lượng vũ trang với các bit thêm thông tin từ ysth, tôi đã có thể thấy sự khác biệt trong các tài liệu:
Các base
pragma không những điều sau đây:
- thêm gói tên để
@ISA
- tải mô-đun có cùng tên với gói được đặt tên bằng cách sử dụng
require
(trừ khi phát hiện gói đã được tải) - sẽ không thành công nếu mô-đun có thứ e cùng tên như các gói không tồn tại
- chết nếu không có các biểu tượng trong các gói có tên
- nếu
$VERSION
không tồn tại trong gói được đặt tên, cơ sở đặt nó để"-1, set by base.pm"
- khởi tạo
fields
của gói tên nếu chúng tồn tại - không gọi hàm nhập khẩu của gói tên
các parent
pragma thực hiện những điều sau đây:
- thêm gói tên để
@ISA
- tải các module với tên tương tự như gói tên sử dụng
require
- chấp nhận một tùy chọn mà nói nó không chết nếu một module với tên tương tự như gói doesn' t tồn tại
Hầu như. Tùy chọn norequire chỉ yêu cầu nó không làm các yêu cầu (vì vậy lớp đó phải được nạp). Điều này có nghĩa là nó không phải bẫy lỗi và quyết định xem chúng có nên bị chặn hay không. – ysth
- 1. Sự khác biệt giữa $ @ và $! trong perl
- 2. Sự khác nhau giữa 'eq' và '= ~' trong Perl là gì?
- 3. Sự khác nhau giữa "||" là gì và "hoặc" trong Perl?
- 4. Sự khác biệt giữa .closest() và .parents ('selector') là gì?
- 5. Sự khác biệt giữa phụ huynh và thuộc tính tham chiếu trong Google App Engine là gì?
- 6. Sự khác biệt giữa điều này và cơ sở
- 7. Sự khác nhau giữa 1..5, [* 1..5] và [1..5] trong Groovy là gì?
- 8. SQLAlchemy: Sự khác biệt giữa flush() và commit() là gì?
- 9. Sự khác biệt giữa tập dữ liệu và cơ sở dữ liệu là gì?
- 10. Sự khác biệt giữa Cơ sở dữ liệu Quan hệ và Không Quan hệ là gì?
- 11. Sự khác biệt giữa betweeen% INC và @INC là gì?
- 12. Sự khác biệt giữa '&' và ',' trong Generics Java là gì?
- 13. Sự khác biệt giữa hệ thống và đường sau và đường ống trong Perl là gì?
- 14. là gì sự khác biệt giữa SQL_Latin1_General_CP1_CI_AS và SQL_Latin1_General_CP1_CI_AI
- 15. Sự khác biệt giữa dấu nháy đơn và dấu ngoặc kép trong Perl là gì?
- 16. Sự khác biệt giữa "db_owner" và "người dùng sở hữu cơ sở dữ liệu" trong SQL Server 2000 là gì?
- 17. Khi nào sự khác biệt giữa chuỗi và số trong Perl 5?
- 18. Sự khác biệt giữa varchar (5) và varchar (5000)?
- 19. Sự khác biệt giữa gói, mô-đun và lớp trong Perl hướng đối tượng là gì?
- 20. Sự khác biệt giữa phạm vi từ vựng và động trong Perl là gì?
- 21. Sự khác biệt giữa mở và sysopen trong Perl là gì?
- 22. sự khác biệt giữa không gian tên, gói và mô-đun trong perl là gì?
- 23. Sự khác biệt giữa grep và bản đồ trong Perl là gì?
- 24. Trong Ember.js, sự khác biệt giữa [] và Ember.A ([]) là gì?
- 25. Sự khác biệt giữa & và && trong MATLAB là gì?
- 26. Sự khác biệt giữa INTERSECT và WHERE IN là gì?
- 27. Sự khác biệt giữa tổng hợp, thành phần và sự phụ thuộc là gì?
- 28. Sự khác biệt giữa ascx và .cshtml là gì?
- 29. Sự khác biệt giữa (string [] args) và System.Environment.CommandLine là gì?
- 30. Sự khác biệt giữa móc và gọi lại là gì?
Ngoài ra, so sánh perl-wE'say yêu cầu cơ sở 'để perl-wE'say yêu cầu cha mẹ' – ysth