2011-10-24 41 views
5

請,任何人都可以幫我這個:Perl的鑽石運營商內部奇怪的事情

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

我只是不明白它是如何工作的。它的工作原理!生產

a1a2a3b1b2b3c1c2c3 

輸出。

有沒有人知道鑽石經營者內部發生了什麼?

回答

7

這是代表glob bing的另一種方式。基本上,曲調告訴glob運營商採取每個逗號分隔的元素,並結合所有可能性。

更明確的方式看到這是逗號分隔的各個輸出:

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

perldoc -f glob

如果非空括號中所用的唯一的通配符glob, 沒有文件名匹配,但可能會返回很多字符串。 例如,這將產生9串,一個爲 水果和各色配對:

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

所以這是關於水珠。感謝您的線索! –