On Wed, Apr 20, 2005 at 04:20:11PM +0100, Nicholas Clark wrote:
> Interesting. Worrisome.
>
> I presume the intent of TARGET is to save overhead of allocating scalars.
> As the problem seems to be endemic, is the solution to create a new function
> (er, or macro) that clears all state, and use that in place of things like the
> piecemeal utf8 flag clearing.
Yuk.
Just as a quick 'what if' test, I tried adding SvOK_off() to dTARGET
and it immediately fell over, eg
$ ./miniperl -wle 'for my $s qw(a b c) { print $s}'
Use of uninitialized value $s in print at -e line 1.
Use of uninitialized value $s in print at -e line 1.
Use of uninitialized value $s in print at -e line 1.
So I presume we'd have to to it on a case-by-case basis.
I recall having particular problems with substr(), which in lvalue mode
meant that the target could live across multiple calls to substr().
--
Monto Blanco... scorchio!