Perl Programming Documentation
Download Perl
Explore

Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

Tools

- Preferences

# readdir

Perl 5 version 18.2 documentation
Go to top
Show recent pages
Recently read

# readdir

Perl functions A-Z | Perl functions by category | The 'perlfunc' manpage

- readdir DIRHANDLE

  Returns the next directory entry for a directory opened by `opendir`. If used in list context, returns all the rest of the entries in the directory. If there are no more entries, returns the undefined value in scalar context and the empty list in list context.

  If you're planning to filetest the return values out of a `readdir`, you'd better prepend the directory in question. Otherwise, because we didn't `chdir` there, it would have been testing the wrong file.

          opendir(my $dh, $some_dir) || die "can't opendir $some_dir: $!";    @dots = grep { /^\./ && -f "$some_dir/$_" } readdir($dh);    closedir $dh;

  As of Perl 5.12 you can use a bare `readdir` in a `while` loop, which will set `$_` on every iteration.

          opendir(my $dh, $some_dir) || die;    while(readdir $dh) {        print "$some_dir/$_\n";    }    closedir $dh;

  To avoid confusing would-be users of your code who are running earlier versions of Perl with mysterious failures, put this sort of thing at the top of your file to signal that your code will work only on Perls of a recent vintage:

          use 5.012; # so readdir assigns to $_ in a lone while test