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