X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fcacheout.pl;h=64378cffc6f00d8f5839ab2e62ea86b25cda44ff;hb=054b02d6604bb3beeebed2d8a040d025b131c9a6;hp=513c25b6fe156b976599e566859ebbbdf9231d80;hpb=bf10efe7e35fa48859e575b890018da16608a9d7;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/cacheout.pl b/lib/cacheout.pl index 513c25b..64378cf 100644 --- a/lib/cacheout.pl +++ b/lib/cacheout.pl @@ -4,6 +4,12 @@ sub cacheout'open { open($_[0], $_[1]); } +# Close as well + +sub cacheout'close { + close($_[0]); +} + # But only this sub name is visible to them. sub cacheout { @@ -15,7 +21,7 @@ sub cacheout { 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"; @@ -29,7 +35,7 @@ $seq = 0; $numopen = 0; if (open(PARAM,'/usr/include/sys/param.h')) { - local($.); + local($_, $.); while () { $maxopen = $1 - 4 if /^\s*#\s*define\s+NOFILE\s+(\d+)/; }