2011-10-24 15 views
5

कृपया, किसी को भी इस के साथ मेरी मदद कर सकते हैं:अजीब बातें

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

मैं बस समझ में नहीं आता कि यह कैसे काम करता है। और यह काम करता है! उत्पादन

a1a2a3b1b2b3c1c2c3 

आउटपुट पर।

क्या कोई जानता है कि हीरा ऑपरेटर के अंदर क्या हो रहा है?

उत्तर

7

glob बिंग का प्रतिनिधित्व करने का यह एक और तरीका है। मूल रूप से curlies glob ऑपरेटर को प्रत्येक अल्पविराम से अलग तत्व को अंदर ले जाने और सभी संभावनाओं को गठबंधन करने के लिए बताते हैं। गैर रिक्त ब्रेसेस केवल वाइल्डकार्ड वर्णों में उपयोग किया जाता है

:

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

perldoc -f glob से:

इस को देखने के लिए एक स्पष्ट तरीका कॉमा-अलग व्यक्ति आउटपुट के लिए है ग्लोब, कोई फ़ाइल नाम मिलान नहीं किया गया है, लेकिन संभावित रूप से कई तार लौटाए जाते हैं।

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

तो यह ग्लोब के बारे में है: उदाहरण के लिए, इस नौ तार, फल और रंगों में से प्रत्येक जोड़ी के लिए एक उत्पादन करता है। सुराग के लिए धन्यवाद! –