On Friday, 05 August 2011 09:58:44 rich...@ecos.de wrote: > Until recently STDOUT etc. were tied filehandles and Embperl XS code > simply has grabbed the filehandle that was attached with Perl's > magic.
Since perl 5.8.[12] or so perlio is standard. Since 5.8.6 stdio is officially not supported anymore. If perlio is available modperl uses it to set up STD handles. Tied handles are only used with stdio. > This has changed in mod_perl 2.0.4 or 5. yes, I changed it from something similar to open SAVEIN, '<&STDIN'; open SAVEOUT, '>&STDOUT'; run_response_handler; open STDIN, '<&SAVEIN'; open STDOUT, '>&SAVEOUT'; to { local *STDIN; local *STDOUT; run_response_handler; } > To save me a lot of investigation (already done some, but with no luck > so far), can somebody tell me how I get the filehandle that mod_perl > has setup in my XS code? The commit in question is 932875. The functions to do the above are C<modperl_io_perlio_override_stdhandle()> and C<modperl_io_perlio_restore_stdhandle()> in F<src/modules/perl/modperl_io.c>. They use C<gv_fetchpv("STDIN", GV_ADD, SVt_PVIO);> to get the handle. Note, all this is only done if the handler is C<perl-script>. For C<modperl> handlers STD handles are not set up. Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org For additional commands, e-mail: dev-h...@perl.apache.org