diff options
author | Aristotle Pagaltzis <pagaltzis@gmx.de> | 2016-09-07 22:20:52 +0200 |
---|---|---|
committer | Aristotle Pagaltzis <pagaltzis@gmx.de> | 2017-06-10 00:03:15 +0200 |
commit | c93f220f65f795688d865624efa429565674530a (patch) | |
tree | 3385e4a7a53445c73e584d519434a645b6e8d71e /lib/DirHandle.pm | |
parent | 766780a5859be97bb7b1cac537b429edd737d58b (diff) | |
download | perl-c93f220f65f795688d865624efa429565674530a.tar.gz |
DirHandle: document as obsolete
Diffstat (limited to 'lib/DirHandle.pm')
-rw-r--r-- | lib/DirHandle.pm | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/lib/DirHandle.pm b/lib/DirHandle.pm index 7493c00a54..100123364e 100644 --- a/lib/DirHandle.pm +++ b/lib/DirHandle.pm @@ -4,26 +4,37 @@ our $VERSION = '1.04'; =head1 NAME -DirHandle - supply object methods for directory handles +DirHandle - (obsolete) supply object methods for directory handles =head1 SYNOPSIS + # 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; - $d = DirHandle->new("."); - if (defined $d) { + if (my $d = DirHandle->new(".")) { while (defined($_ = $d->read)) { something($_); } $d->rewind; while (defined($_ = $d->read)) { something_else($_); } - undef $d; } =head1 DESCRIPTION +B<There is no reason to use this module nowadays.> + The C<DirHandle> method provide an alternative interface to the opendir(), closedir(), readdir(), and rewinddir() functions. -The only objective benefit to using C<DirHandle> is that it avoids -namespace pollution by creating globs to hold directory handles. +Up to Perl 5.5, opendir() could not autovivify a directory handle from +C<undef>, so using a lexical handle required using a function from L<Symbol> +to create an anonymous glob, which took a separate step. +C<DirHandle> encapsulates this, which allowed cleaner code than opendir(). +Since Perl 5.6, opendir() alone has been all you need for lexical handles. =cut |