📄 dirhandle.pm
字号:
package DirHandle;our $VERSION = '1.00';=head1 NAME DirHandle - supply object methods for directory handles=head1 SYNOPSIS use DirHandle; $d = new DirHandle "."; if (defined $d) { while (defined($_ = $d->read)) { something($_); } $d->rewind; while (defined($_ = $d->read)) { something_else($_); } undef $d; }=head1 DESCRIPTIONThe C<DirHandle> method provide an alternative interface to theopendir(), closedir(), readdir(), and rewinddir() functions.The only objective benefit to using C<DirHandle> is that it avoidsnamespace pollution by creating globs to hold directory handles.=head1 NOTES=over 4=item *On Mac OS (Classic), the path separator is ':', not '/', and the current directory is denoted as ':', not '.'. You should be careful about specifying relative pathnames. While a full path always begins with a volume name, a relative pathname should always begin with a ':'. If specifying a volume name only, a trailing ':' is required.=back=cutrequire 5.000;use Carp;use Symbol;sub new { @_ >= 1 && @_ <= 2 or croak 'usage: new DirHandle [DIRNAME]'; my $class = shift; my $dh = gensym; if (@_) { DirHandle::open($dh, $_[0]) or return undef; } bless $dh, $class;}sub DESTROY { my ($dh) = @_; closedir($dh);}sub open { @_ == 2 or croak 'usage: $dh->open(DIRNAME)'; my ($dh, $dirname) = @_; opendir($dh, $dirname);}sub close { @_ == 1 or croak 'usage: $dh->close()'; my ($dh) = @_; closedir($dh);}sub read { @_ == 1 or croak 'usage: $dh->read()'; my ($dh) = @_; readdir($dh);}sub rewind { @_ == 1 or croak 'usage: $dh->rewind()'; my ($dh) = @_; rewinddir($dh);}1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -