Đó là một chiếc áo lót lót gôn. Cờ -e
có nghĩa là thực hiện phần còn lại của dòng lệnh làm chương trình. -l
cho phép xử lý dòng tự động.
Phần <.* *>
là hình cầu chứa hai mẫu để mở rộng: .*
và *
.
phần này
(q=not =)
là một danh sách có chứa một giá trị duy nhất - chuỗi "không". Các q=...=
là một dấu phân cách chuỗi thay thế, rõ ràng được sử dụng bởi vì các báo giá duy nhất đang được sử dụng để báo giá một lót.
Phần [...]
là chỉ số trong danh sách đó. Giá trị của chỉ số dưới sẽ hoặc là 0 (giá trị "không ") hoặc 1 (không có gì, mà in như chuỗi rỗng) tùy thuộc vào kết quả của sự so sánh này:
2 == (()=<.* *>)
Có rất nhiều xảy ra ở đây. Việc so sánh kiểm tra xem liệu glob có trả về danh sách chính xác hai mục (giả định là .
và ..
) hay không nhưng nó hoạt động thế nào. Các dấu ngoặc đơn bên trong biểu thị một danh sách trống. Gán vào danh sách này đặt glob trong ngữ cảnh danh sách để nó trả về tất cả các tệp trong thư mục. (Trong ngữ cảnh vô hướng, nó sẽ hoạt động giống như một trình lặp và chỉ trả về một lần.) Bản thân nhiệm vụ được đánh giá trong ngữ cảnh vô hướng (ở phía bên phải của phép so sánh) và do đó trả về số phần tử được gán.
Hàng đầu +
là để ngăn Perl phân tích cú pháp danh sách dưới dạng đối số thành print
.Đường nhỏ .empty
nối chuỗi "trống" vào bất kỳ thứ gì xuất hiện trong danh sách (ví dụ: "không phải là " hoặc chuỗi trống).
Nguồn
2009-07-14 15:55:26
Hãy thoải mái chỉnh sửa các thẻ cho một cái gì đó phù hợp hơn – dsm
Haha, bạn rất vui nhộn! Tôi lăn trên sàn cười. Bạn gọi là tiếng ồn dòng Perl !!!! HAHAHAHAHAHAHAHAHAHAHAHAHA! – jrockway
Nộp đơn tuyệt vời cho 'làm xáo trộn năm'. Tôi thích Perl, nhưng tôi thậm chí còn giống như ý kiến trong mã Perl. – Boldewyn