X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fcacheout.pl;h=48d594bf82591fefb6f9f2c4d5846fea06b7c47c;hb=ccd13d1e2262a17c4c370c99cf06a24ebb84a875;hp=bec40bde62beb5077a26e1a7b41539e2b8301653;hpb=55204971972392ce5a252fbbd6d78b1c48ed70e3;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/cacheout.pl b/lib/cacheout.pl index bec40bd..48d594b 100644 --- a/lib/cacheout.pl +++ b/lib/cacheout.pl @@ -1,11 +1,15 @@ -#!/usr/bin/perl - # Open in their package. 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 { @@ -17,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";