内容

名称

DirHandle - (已过时) 为目录句柄提供对象方法

概要

# recommended approach since Perl 5.6: do not use DirHandle
if (opendir my $d, '.') {
    while (readdir $d) { something($_); }
    rewind $d;
    while (readdir $d) { something_else($_); }
}

# how you would use this module if you were going to
use DirHandle;
if (my $d = DirHandle->new(".")) {
    while (defined($_ = $d->read)) { something($_); }
    $d->rewind;
    while (defined($_ = $d->read)) { something_else($_); }
}

描述

现在没有理由使用此模块。

DirHandle 方法提供了一个替代接口,用于 opendir()、closedir()、readdir() 和 rewinddir() 函数。

在 Perl 5.5 之前,opendir() 无法从 undef 自动创建目录句柄,因此使用词法句柄需要使用 Symbol 中的函数来创建匿名 glob,这需要一个单独的步骤。DirHandle 封装了这一点,它允许比 opendir() 更简洁的代码。从 Perl 5.6 开始,opendir() 本身就足以用于词法句柄。