-#!/usr/bin/perl
+#
+# This library is no longer being maintained, and is included for backward
+# compatibility with Perl 4 programs which may require it.
+#
+# In particular, this should not be used as an example of modern Perl
+# programming techniques.
+#
+# Suggested alternative: FileCache
# Open in their package.
open($_[0], $_[1]);
}
+# Close as well
+
+sub cacheout'close {
+ close($_[0]);
+}
+
# But only this sub name is visible to them.
sub cacheout {
package cacheout;
($file) = @_;
- ($package) = caller;
if (!$isopen{$file}) {
if (++$numopen > $maxopen) {
- sub byseq {$isopen{$a} != $isopen{$b};}
- local(@lru) = sort byseq keys(%isopen);
+ local(@lru) = sort {$isopen{$a} <=> $isopen{$b};} keys(%isopen);
splice(@lru, $maxopen / 3);
$numopen -= @lru;
- for (@lru) { close $_; delete $isopen{$_}; }
+ for (@lru) { &close($_); delete $isopen{$_}; }
}
&open($file, ($saw{$file}++ ? '>>' : '>') . $file)
|| die "Can't create $file: $!\n";
$numopen = 0;
if (open(PARAM,'/usr/include/sys/param.h')) {
- local($.);
+ local($_, $.);
while (<PARAM>) {
- $maxopen = $1 - 4 if /^#define NOFILE\s+(\d+)/;
+ $maxopen = $1 - 4 if /^\s*#\s*define\s+NOFILE\s+(\d+)/;
}
close PARAM;
}