Re: [RFC PATCHv2 04/10] gitweb: Use Cache::Cache compatibile (get, set) output caching
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Feb 10, 2010, 20:32 UTC
- 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ł:
Show 7 quoted lines
> 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 <sth>'
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