develooper Front page | perl.perl5.porters | Postings from January 2011

Re: [perl #77810] Scalars vs globs (*{} should not return FAKE globs)

Thread Previous | Thread Next
From:
Joshua ben Jore
Date:
January 30, 2011 21:03
Subject:
Re: [perl #77810] Scalars vs globs (*{} should not return FAKE globs)
Message ID:
AANLkTimvh+CwgNa9-G_unY4vNJOiJD_EWHw+yG-JBUaf@mail.gmail.com
On Sun, Oct 24, 2010 at 4:22 PM, Father Chrysostomos via RT
<perlbug-followup@perl.org> wrote:
> On Sun Sep 19 12:07:29 2010, sprout wrote:
>>
>> On Sep 12, 2010, at 12:28 PM, Father Chrysostomos wrote:
>>
>> > Now the real problem here seems to be that *{} is returning glob
>>    copies. We could make this operator return GvEGV(sv) in the
>>    presence of the SVf_FAKE flag, and make all operators that need to
>>    distinguish between globs and scalars check the SVf_FAKE flag.
>>
>> I tried just making it return a new glob if what it would return is
>>    flagged FAKE (unless it’s in the symtab, in which case it is
>>    reified), to see what would break.
>
> And I’ve just applied it as 2acc3314e31a9.
>
> If this proves unacceptable for 5.14 and is reverted, it might also be a
> good idea to revert the fixes for 36051 (lvalue globs), 71686 (globs can
> be un-globbed) and 1804 (anon. glob breaks when assigned through), as
> they all introduce regressions that this commit allows me to fix.

This broke Data::Dump::Streamer
(https://rt.cpan.org/Ticket/Display.html?id=65272&results=7df022c760a8288f87e03aa553e241ec).
I'm unsure if this is now a bug in how B works. I have some un-even
success with the method call ->object_2svref "fixing" the data and
preventing the assert() failures.

Josh

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