See the current Perl documentation for lib:DirHandle.
Here is our local, out-dated (pre-5.6) version:

DirHandle - supply object methods for directory handles

use DirHandle;
$d = new DirHandle ".";
if (defined $d) {
while (defined($_ = $d->read)) { something($_); }
$d->rewind;
while (defined($_ = $d->read)) { something_else($_); }
undef $d

The DirHandle method provide an alternative interface to the
opendir(),
closedir(),
readdir(), and
rewinddir() functions.
The only objective benefit to using DirHandle is that it avoids namespace pollution by creating globs to hold directory
handles.