2011-10-24 37 views
5

Xin vui lòng, bất cứ ai có thể giúp tôi với điều này:Điều kỳ lạ bên trong khai thác kim cương Perl

perl -e 'print for <{a,b,c}{1,2,3}>' 

Tôi chỉ không hiểu làm thế nào nó hoạt động. Và nó hoạt động! Sản xuất

a1a2a3b1b2b3c1c2c3 

khi xuất.

Có ai biết điều gì đang xảy ra bên trong nhà điều hành kim cương không?

Trả lời

7

Đó là một cách khác để đại diện cho glob bing. Về cơ bản các curlies nói với toán tử glob để lấy từng phần tử được phân cách bằng dấu phẩy bên trong và kết hợp trên tất cả các khả năng.

Một cách rõ ràng hơn để thấy điều này là bằng dấu phẩy tách biệt các kết quả đầu ra cá nhân:

$ perl -e 'print join ",", <{a,b,c}{1,2,3}>;' 
a1,a2,a3,b1,b2,b3,c1,c2,c3 

Từ perldoc -f glob:

Nếu niềng răng không có sản phẩm nào được các ký tự đại diện chỉ được sử dụng trong glob, không có tên tệp nào phù hợp, nhưng có khả năng nhiều chuỗi được trả về. Ví dụ, điều này tạo ra chín chuỗi, một cho mỗi cặp của trái cây và màu sắc:

@many = glob "{apple,tomato,cherry}={green,yellow,red}"; 
+0

Vì vậy, đây là khoảng glob. Cảm ơn cho các đầu mối! –

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