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