From: Jakub Narebski Date: Wed, 10 Feb 2010 20:32:54 GMT Subject: Re: [RFC PATCHv2 04/10] gitweb: Use Cache::Cache compatibile (get, set) output caching Message-ID: <201002102132.56406.jnareb@gmail.com> In-Reply-To: <201002101922.50010.jnareb@gmail.com> Dnia środa 10. lutego 2010 19:22, Jakub Narebski napisał: > Well, the idea was to use PerlIO::Util if possible, checking it via > >   out $use_perlio_layers = eval { require PerlIO::Util; 1 }; > > and fallback to generic mechanism if it is not present.  Only the > generic mechanism would have to be changed from manipulating *STDOUT > (*STDOUT = $data_fh etc.) to tied filehandle. Well, damn, this is not needed[1]. Instead of manipulating *STDOUT, it is enough to use 'select FILEHANDLE'. It means that the capture would look like this: open my $data_fh, '>', \$data; my $oldfh = select($data_fh); # ... code that uses 'print ' select($oldfh); close $data_fh; One thing that needs to be done is changing 'binmode STDOUT ...' into 'binmode select() ...' [1] Thanks to mst on #perl channel for pointing this to me. -- Jakub Narebski Poland