develooper Front page | perl.perl5.porters | Postings from September 2012

Re: [perl #114410] Substr giving wrong results on $1 with utf8

Thread Previous | Thread Next
From:
Nicholas Clark
Date:
September 6, 2012 06:06
Subject:
Re: [perl #114410] Substr giving wrong results on $1 with utf8
Message ID:
20120906130613.GR9583@plum.flirble.org
On Fri, Aug 31, 2012 at 08:29:48AM -0700, Father Chrysostomos via RT wrote:

> I'm also wondering whether it's even worth creating the utf8 cache to
> begin with on magical values, as it will be invalidated almost
> immediately.  It seems that the extra work to facilitate an optimisation
> actually slows things down.

I'm not sure if any code relies for performance on being able to call it
twice on the same string. I thought that pp_substr() did, but actually
that's taking advantage of the fact that the call takes two positions to
convert.

pp_index() calls sv_pos_u2b() and sv_pos_b2c() on the same SV.
I'm not sure whether (a) that matters (b) whether they can be condensed into
one call.

If no op or clearly related code path ends up calling more than one function
twice, then it seems to make most sense to avoid actually storing the cache
structure on the SV for "active" values (magic and overloading - I think
that's all of them).

Nicholas Clark

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About