2015-07-06 16 views
8

Tôi đã thấy một số posts trạng thái use 5.12.0; trong Perl cho phép một số tính năng/pragmas nhất định theo mặc định (ví dụ: use strict;). Một ví dụ khác là trong UTF-8 and perl nơi được tuyên bố rằng use 5.14.0;Perl: những gì được bao gồm trong sử dụng 5. ##. #?

tối ưu cho tính năng chuỗi Unicode UTF-8 xử lý.

Tôi dường như nhớ lại tuyên bố có sẵn use cung cấp các giá trị mặc định nhất định (ví dụ: use strict; use warnings; use diagnostics;), nhưng không thể nhớ các chi tiết cụ thể. Làm thế nào để tìm ra những gì được bao gồm trong một tuyên bố use 5.##.#; nhất định? Ví dụ: use 5.22.0; cung cấp theo mặc định là gì? use strict;? Còn gì nữa không? Cảm ơn.

Trả lời

10

này được ghi chép lại trong perldoc feature:

Có thể nạp nhiều tính năng với nhau, sử dụng một gói tính năng. Tên của một nhóm đối tượng địa lý được bắt đầu bằng dấu hai chấm, để phân biệt nó với một đối tượng địa lý thực tế.

use feature ":5.10"; 

Các gói tính năng sau đây có sẵn:

bundle features included 
--------- ----------------- 
:default array_base 
:5.10  say state switch array_base 
:5.12  say state switch unicode_strings array_base 
:5.14  say state switch unicode_strings array_base 
:5.16  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 
:5.18  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 
:5.20  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 
:5.22  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 

nơi

use v5.10.0; 

sẽ làm một ngầm

no feature ':all'; 
use feature ':5.10'; 

và cứ tiếp tục như vậy.

tự động cho phép của hẹp được ghi chép lại trong perldoc -f use:

nếu phiên bản Perl định là lớn hơn hoặc bằng 5.12.0, hẹp được kích hoạt lexically như với use strict.

+0

Hoàn hảo. Điều này thật đúng với gì mà tôi đã tìm kiếm. Tôi đã tưởng tượng ra nó, hay là có một số tập con 'feature' bao gồm: nghiêm ngặt, cảnh báo và chẩn đoán tất cả trong một lần?Cảm ơn – secJ

+0

Theo như tôi biết, không có gì trong lõi làm điều đó, nhưng chắc chắn có thể có các mô-đun làm điều đó. Có lẽ bạn đang nghĩ đến [Modern :: Perl] (https://metacpan.org/pod/Modern::Perl), cho phép 'strict',' warnings', và tất cả 5.10 tính năng, trong số những thứ khác. – ThisSuitIsBlackNot

+0

Ah, vâng, đúng vậy! Hiện đại :: Perl. Cảm ơn bạn lần nữa – secJ

2

use 5.12.0; không use feature ':5.12';, vì vậy bạn sẽ có được

  • nói
  • bang
  • switch
  • unicode_strings
  • array_base

Các Fea bó ture được ghi trong tài liệu của feature.pm.

+0

Cảm ơn bạn đã liên kết đến tài liệu của features.pm. Tài nguyên tuyệt vời để giữ dấu trang – secJ

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