In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/c93f220f65f795688d865624efa429565674530a?hp=766780a5859be97bb7b1cac537b429edd737d58b>

- Log -----------------------------------------------------------------
commit c93f220f65f795688d865624efa429565674530a
Author: Aristotle Pagaltzis <[email protected]>
Date:   Wed Sep 7 22:20:52 2016 +0200

    DirHandle: document as obsolete
-----------------------------------------------------------------------

Summary of changes:
 lib/DirHandle.pm | 23 +++++++++++++++++------
 1 file 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
 

--
Perl5 Master Repository

Reply via email to