while(<@thisArray>)
क्या कोई जानता है कि यह वास्तव में क्या करेगा?जबकि (<@array>) perl
glob(@thisArray)
रूप
while(<STDIN>)
while(<@thisArray>)
क्या कोई जानता है कि यह वास्तव में क्या करेगा?जबकि (<@array>) perl
glob(@thisArray)
रूप
while(<STDIN>)
<@thisArray>
काम करता है: के रूप में यह कोड आमतौर पर की तरह कुछ है हम सिर्फ इस पर एक चर्चा कर रहे थे। तो यह सरणी के सदस्यों से मेल खाने वाली सभी फाइलों की एक सूची देता है।
यदि सरणी का कोई तत्व किसी फ़ाइल से मेल नहीं खाता है, तो तत्व स्वयं लौटा दिया जाता है।
यह @thisArray
में पैटर्न से मेल खाने वाली फाइलों के नामों के माध्यम से पुनरावृत्त होगा।
perl -MO=Deparse -e '1 while(<@thisArray>)'
के परिणाम से पता चलता है कि <>
glob
में बदल जाती है: इस तरह के फ़ाइल नाम विस्तार के माध्यम से
अदिश संदर्भ में, ग्लोब दोहराता, undef लौटने जब सूची समाप्त हो रहा है:
use File::Glob(); '???' while defined($_ = glob(join($", @thisArray)));
glob
पुस्तिका से ।$"
के लिए
डिफ़ॉल्ट मूल्य, जगह नहीं है इसलिए @thisArray
से कई पैटर्न एकल स्ट्रिंग में शामिल किया जाएगा और उसके बाद glob
अंदर वापस अंतरिक्ष से splitted:
ध्यान दें कि ग्लोब खाली स्थान के और व्यवहार से प्रत्येक पर अपने तर्कों विभाजन खंड अलग पैटर्न के रूप में।
बहुत बहुत धन्यवाद। मैं इसे गिनती के लिए इस्तेमाल कर रहा था इसलिए गिनती बंद हो गई होगी। Perlop लिंक के लिए – Psyllex
यह कुछ भी नहीं करना चाहिए, क्योंकि '@ array' फ़ाइलहेडल नाम नहीं है, यह एक सरणी का नाम है। – SexyBeast