आप readdir या glob उपयोग कर सकते हैं।
या, आप इस तरह के Path::Class के रूप में एक मॉड्यूल का उपयोग कर सकते हैं:
आमतौर children()
स्वयं और माता पिता के प्रविष्टियाँ शामिल नहीं होंगे। और .. (या गैर-यूनिक्स सिस्टम पर उनके समकक्ष), क्योंकि यह मेरे जैसे-दादा व्यवसाय की तरह है। आप इन विशेष सहित सभी निर्देशिका प्रविष्टियों चाहते हैं, तो सभी पैरामीटर के लिए एक सही मूल्य पारित: - यूनिक्स पर इसका मतलब यह है को छोड़कर
@c = $dir->children(); # Just the children
@c = $dir->children(all => 1); # All entries
अलावा, वहाँ एक no_hidden पैरामीटर है कि सभी सामान्य रूप से "छिपा" प्रविष्टियों को बाहर निकाल देगा है सभी प्रविष्टियों कि एक बिंदु के साथ शुरू करते हैं (.
):
@c = $dir->children(no_hidden => 1); # Just normally-visible entries
या, Path::Tiny:
@paths = path("/tmp")->children;
@paths = path("/tmp")->children(qr/\.txt$/);
एक निर्देशिका में सभी फ़ाइलों और निर्देशिकाओं के लिए Path::Tiny
वस्तुओं की एक सूची देता है। "."
और ".."
को स्वचालित रूप से बहिष्कृत करता है।
एक वैकल्पिक qr//
तर्क प्रदान की जाती है, तो वह केवल बच्चे के नाम है जो दिए गए रेगुलर एक्सप्रेशन से मेल के लिए वस्तुओं देता है। सिर्फ आधार नाम मिलान के लिए प्रयोग किया जाता है:
@paths = path("/tmp")->children(qr/^foo/);
# matches children like the glob foo*
एक सरणी कचरे में कुछ स्मृति निर्देशिका प्रविष्टियों की सूची हो रही है (जैसा कि एक समय में एक फ़ाइल नाम हो रही है के खिलाफ) है, लेकिन केवल कुछ सौ फाइलों के साथ , यह एक मुद्दा होने की संभावना नहीं है।
Path::Class
* nix और Windows के अलावा अन्य ऑपरेटिंग सिस्टम के लिए पोर्टेबल है। दूसरी ओर, AFAIK, इसके उदाहरणों अधिक स्मृति का उपयोग की तुलना में Path::Tiny
उदाहरणों से करते हैं।
यदि स्मृति कोई समस्या है, तो while
लूप में readdir
का उपयोग करना बेहतर होगा।
क्या यह प्रश्न इस पर एक डुप्लीकेट नहीं है? http://stackoverflow.com/questions/1045792/how-can-i-list-all-of-the-files-in-a-directory-with-perl –
@ लियोनार्डो हेरेरा वास्तव में, यह है। क्षमा करें, मुझे वह याद नहीं आया। बंद करने के लिए वोटिंग। –
मुझे नहीं लगता कि यह एक डुप्लिकेट कैसे है। प्रश्न पूछता है कि निर्देशिका में फ़ाइलों के माध्यम से लूप कैसे करें। चिह्नित 'डुप्लिकेट' निर्देशिका में सभी फ़ाइलों को सूचीबद्ध करने के लिए कहता है। स्पष्ट रूप से अलग है। डुप्लिकेट के रूप में चिह्नित क्यों करें? – CJ7