2014-07-09 17 views
8

Tôi có một đoạn mã sử dụng nhiều tính năng thử nghiệm (when, smartmatch, given), không phải mã của tôi và tôi không muốn thấy nhiều cảnh báo về các tính năng thử nghiệm. Vì vậy, tôi đã thêm no warnings 'experimental'; vào mã này. Nhưng experimental loại đã được bổ sung chỉ trong perl 5,18 do đó, mã của tôi chết trong perls cũ:Perl không có cảnh báo 'thử nghiệm' trên perl cũ

cảnh báo Unknown loại 'thử nghiệm'

Làm thế nào tôi có thể vô hiệu hóa cảnh báo này và không phá vỡ mã của tôi trong perls cũ ?

+0

@ Сухой27, mã này sẽ vô hiệu hóa các cảnh báo bên BEGIN khối – Suic

+0

Vâng, đúng ... –

Trả lời

11

Hãy thử if:

no if ($] >= 5.018), 'warnings' => 'experimental'; 
9

Thử cài đặt và sử dụng mô-đun experimental. Trên perls cũ nó sẽ không làm gì cả, và trên perls mới hơn nó sẽ vô hiệu hóa các cảnh báo.

use experimental qw(smartmatch switch); 
+1

perl 5.14.2 đã cho tôi: '' 'Không thể xác định vị trí thực nghiệm .pm''' trong một kịch bản với dòng đó và không có gì khác. Tôi có nên sử dụng cái gì khác không? – msouth

+2

@msouth bạn có chắc là bạn đã cài đặt mô-đun chưa? – AKHolland

+1

Xin lỗi @AKHolland Tôi cho rằng đó là cốt lõi. Lỗi của tôi. Bạn có thể ngăn chặn bất kỳ ai khác đưa ra giả định không chính xác này bằng cách chỉnh sửa nó để đọc "thử cài đặt mô-đun thử nghiệm". Tôi đoán với trường hợp thấp hơn và những thứ tôi nghĩ rằng đó là một cái gì đó trong lõi tôi chưa bao giờ nghe nói đến. Và cảm ơn bạn đã dành thời gian để quay lại câu hỏi này để trả lời câu hỏi của tôi! – msouth

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