This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Swap byte order in DO_BO_(UN)?PACK based on a variable needs_swap.
[perl5.git] / lib / DirHandle.pm
index 1d25969..7493c00 100644 (file)
@@ -1,6 +1,6 @@
 package DirHandle;
 
-our $VERSION = '1.00';
+our $VERSION = '1.04';
 
 =head1 NAME 
 
@@ -9,7 +9,7 @@ DirHandle - supply object methods for directory handles
 =head1 SYNOPSIS
 
     use DirHandle;
-    $d = new DirHandle ".";
+    $d = DirHandle->new(".");
     if (defined $d) {
         while (defined($_ = $d->read)) { something($_); }
         $d->rewind;
@@ -25,20 +25,6 @@ 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.
 
-=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
-
 =cut
 
 require 5.000;
@@ -46,7 +32,7 @@ use Carp;
 use Symbol;
 
 sub new {
-    @_ >= 1 && @_ <= 2 or croak 'usage: new DirHandle [DIRNAME]';
+    @_ >= 1 && @_ <= 2 or croak 'usage: DirHandle->new( [DIRNAME] )';
     my $class = shift;
     my $dh = gensym;
     if (@_) {
@@ -58,6 +44,10 @@ sub new {
 
 sub DESTROY {
     my ($dh) = @_;
+    # Don't warn about already being closed as it may have been closed 
+    # correctly, or maybe never opened at all.
+    local($., $@, $!, $^E, $?);
+    no warnings 'io';
     closedir($dh);
 }