Tôi mới làm quen với Perl và hiện đang được giao nhiệm vụ dọn dẹp và duy trì một dự án Perl lớn và khá lộn xộn. Tôi đang sử dụng perl-nhà phê bình để giúp tôi phát hiện các vấn đề trong mã (và cũng để dạy tôi thực hành tốt nhất).Làm thế nào để phát hiện mã không thể truy cập trong Perl có điều kiện mà luôn luôn đánh giá sai?
Mã hiện tại có những nơi mà trình tạo mã đã tạo mã không thể truy cập được. Ví dụ, họ đã thêm vào '& & 0' như là một cách lười biếng của ý kiến trên một số các chi nhánh mã:
if ($req->param('donut') && 0) {
unreachable code...
} else {
always branches to here...
}
tôi hy vọng rằng perl hay phê bình sẽ cảnh báo cho tôi về mã unreachable trong trường hợp như vậy (trong đó một có điều kiện có giá trị hằng số được đánh giá là sai), nhưng không.
Có công cụ hay đoạn mã nào tôi có thể sử dụng để phát hiện loại điều này một cách đáng tin cậy không?
Rõ ràng tôi có thể tìm kiếm cho '& & 0' trong nguồn nhưng có một số cách mà các coder có thể tạo mã unreachable ngoài phụ thêm '& & 0' để một câu lệnh if.
+1 để thông báo cho tôi về B :: Deparse.Mặc dù tác dụng phụ của phần đầu tiên của điều kiện là rõ ràng đối với tôi (có nghĩa là biểu thức điều kiện tự nó không thể được biên dịch đi), tôi đã không nhận ra về sự thay đổi của bối cảnh được giới thiệu bởi phần thứ hai của điều kiện . –