Tôi thừa kế một số mã perl mà tất nhiên không sử dụng hoặc nghiêm ngặt hoặc cảnh báo, và tôi tiếp tục sử dụng các biến uninitialized và muốn.Phần mã khung sử dụng nghiêm ngặt/không nghiêm ngặt?
Tôi muốn đặt dấu ngoặc các phần của mã mà tôi đang thay đổi như thế này:
use warnings;
use strict;
... my code changes and additions ...
no strict;
no warnings;
Và đó dường như làm việc, nhưng tôi có vấn đề giải mã những gì the perldoc on use có nghĩa là khi nó nói đây là những chỉ thị trình biên dịch nhập vào "phạm vi khối" hiện tại. Điều đó có nghĩa là bất kỳ phạm vi nào có thể có một use strict
không được ghép nối với một số no strict
? Có phải no strict
ở đuôi phạm vi toàn cầu về cơ bản không hoàn thành ý nghĩa của use strict
trước đó trong cùng phạm vi?
Tôi sẽ xác nhận đây là một ý tưởng hay * tạm thời * làm việc với mã hiện có. Thậm chí tốt hơn là đặt các bổ sung của bạn vào các hàm trong một tệp thư viện riêng biệt. Cuối cùng bạn sẽ muốn mang lại cho nó tất cả theo nghiêm ngặt. – Schwern
Một người nào đó không 'sử dụng nghiêm ngặt' tất nhiên cũng không cho phép đóng gói mã dễ dàng ... Tôi phải thêm vào số thứ tự toàn cầu của họ, bạn thấy ... – stevesliva
Vâng, nó bực bội, nhưng nó không ngăn chặn bạn sử dụng các chương trình con thư viện. Bạn có thể tham khảo hình cầu của chúng với '% main :: blah' (giả sử nó nằm trong gói chính). Thậm chí tốt hơn, vượt qua globals của bạn, bạn cần phải sửa đổi vào chương trình con của bạn bằng cách tham khảo: 'some_new_sub (\% blah)'. Nó sẽ ngăn chặn mess toàn cầu của họ từ lây nhiễm mã mới. Điều này sẽ lộn xộn lúc đầu, nhưng nó sẽ cung cấp cho bạn một ý tưởng tốt hơn về mã nào cần dữ liệu gì. Thông qua tất cả điều này, mô hình Extract Method sẽ là công cụ mạnh nhất của bạn. – Schwern