← Back to Perl Course | Chapter 5: File I/O | Lesson 6 of 7

Directories का उपयोग

opendir, readdir, और mkdir आपको folders बनाने और list करने देते हैं।

In this page:

  1. Directories

Directories

mkdir एक directory बनाता है और rmdir एक empty वाली remove करता है। opendir एक directory handle देता है, और readdir इसकी entries return करता है, special names . और .. समेत जिन्हें आप आमतौर पर skip करते हैं। readdir results का order defined नहीं है, इसलिए predictable output के लिए इन्हें sort करें।

Note: glob function, जैसे glob("*.txt"), एक directory handle खोले बिना matching file names return करता है।

उदाहरण: Directories

perl
use strict;
use warnings;

my $dir = "demo_dir";
mkdir $dir or die "Cannot mkdir: $!" unless -d $dir;
for my $name (qw(b.txt a.txt c.log)) {
    open(my $fh, '>', "$dir/$name") or die "Cannot create $name: $!";
    print $fh "x\n";
    close $fh;
}
opendir(my $dh, $dir) or die "Cannot open dir: $!";
my @entries = sort grep { $_ ne '.' && $_ ne '..' } readdir($dh);
closedir $dh;
print "entries: @entries\n";
my @txt = map { s{^\Q$dir\E/}{}r } sort glob("$dir/*.txt");
print "txt files: @txt\n";
unlink glob("$dir/*");
rmdir $dir or die "Cannot rmdir: $!";
print "directory removed: ", (-d $dir ? "no" : "yes"), "\n";

# Output:
# entries: a.txt b.txt c.log
# txt files: a.txt b.txt
# directory removed: yes
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. यह भूल जाना कि readdir . और .. भी return करता है
  2. यह मान लेना कि readdir sorted order में names return करता है
  3. एक directory पर rmdir करने की कोशिश करना जो empty नहीं है
चैप्टर सारांश
  • mkdir और rmdir directories बनाते और remove करते हैं
  • opendir और readdir entries list करते हैं
  • . और .. skip करें
  • stable order के लिए names sort करें
🔒

Chapter Quiz — Complete all 7 topics to unlock

0/7 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.