I have been testing my mod_perl-1.26 applications under perl 5.7.3. I have discovered that the tying of STDIN and STDOUT does not work. This is caused by a change in the internals of the implementation of tied handles in Perl. The following extract from the source of Perl (pp_sys.c ll 764 ff) describes the change
methname = "TIEHANDLE"; how = PERL_MAGIC_tiedscalar; /* For tied filehandles, we apply tiedscalar magic to the IO slot of the GP rather than the GV itself. AMS 20010812 */ if (!GvIOp(varsv)) GvIOp(varsv) = newIO(); varsv = (SV *)GvIOp(varsv); break; I have got myself going by patching mod_perl as below. This patch makes mod_perl work with 5.7.3, but, of course, stops it working with 5.6.x. It is beyond my knowledge to make this patch version dependent, as it needs to be. *** /tmp/sccs.I.aOiq Mon Mar 18 14:41:11 2002 --- perlio.c Mon Mar 18 12:18:22 2002 *************** *** 54,61 **** #define TIEHANDLE(name,obj) \ { \ dHANDLE(name); \ ! sv_unmagic((SV*)handle, 'q'); \ ! sv_magic((SV*)handle, obj, 'q', Nullch, 0); \ } #if 0 --- 54,61 ---- #define TIEHANDLE(name,obj) \ { \ dHANDLE(name); \ ! sv_unmagic((SV*)GvIOp((SV*)handle), 'q'); \ ! sv_magic((SV*)GvIOp((SV*)handle), obj, 'q', Nullch, 0); \ } #if 0 -- Charles Jardine - Computing Service, University of Cambridge [EMAIL PROTECTED] Tel: +44 1223 334506, Fax: +44 1223 334679