sync blead with Update Archive::Extract 0.34
[p5sagit/p5-mst-13.2.git] / lib / FileCache.pm
index 02bde7e..09583b0 100644 (file)
@@ -1,6 +1,6 @@
 package FileCache;
 
-our $VERSION = '1.06';
+our $VERSION = '1.08';
 
 =head1 NAME
 
@@ -8,6 +8,8 @@ FileCache - keep more files open than the system permits
 
 =head1 SYNOPSIS
 
+    no strict 'refs';
+
     use FileCache;
     # or
     use FileCache maxopen => 16;
@@ -71,6 +73,9 @@ FileCache does not store the current file offset if it finds it necessary to
 close a file.  When the file is reopened, the offset will be as specified by the
 original C<open> file mode.  This could be construed to be a bug.
 
+The module functionality relies on symbolic references, so things will break
+under 'use strict' unless 'no strict "refs"' is also specified.
+
 =head1 BUGS
 
 F<sys/param.h> lies with its C<NOFILE> define on some systems,
@@ -80,7 +85,6 @@ so you may have to set I<maxopen> yourself.
 
 require 5.006;
 use Carp;
-use Config;
 use strict;
 no strict 'refs';
 
@@ -137,7 +141,7 @@ sub cacheout_open {
 sub cacheout_close {
   # Short-circuit in case the filehandle disappeared
   my $pkg = caller($_[1]||0);
-  fileno(*{$pkg . '::' . $_[0]}) &&
+  defined fileno(*{$pkg . '::' . $_[0]}) &&
     CORE::close(*{$pkg . '::' . $_[0]});
   delete $isopen{$_[0]};
 }