kmacleod has asked for the wisdom of the Perl Monks concerning the following question:
I'm trying to use stringify overload on a tied XS variable (Perl 5.6.0) and I can't figure out how to turn on 'fallback'.
I was able to find SvAMAGIC_on() to turn on overload, and I provide a stringify method ('""') that works when you do "$ref", but I need
$ref eq "some string"to work also, and that means setting fallback => 1, which I can't figure out how to do to my XS-tied variable. My tie'ing sequence looks roughly like this:
HV *hash = newHV(); SV *hashref = newRV_noinc((SV*)hash); SV *tie = newSViv((IV)value); SV *tieref = newRV_noinc(tie); sv_bless(tieref, hash_tie_stash); sv_bless(hashref, xml_attribute_stash); SvAMAGIC_on(hashref); hv_magic(hash, (GV *)tieref, 'P'); SvREFCNT_dec(tieref); return hashref;Devel::Peek isn't giving me a clue (afaics) as to what magic is different between my XS-tied var and a pure-Perl tied var with overload magic.
Any clues appreciated!
|Replies are listed 'Best First'.|
(tye)Re: overload and XS
by tye (Sage) on May 18, 2001 at 09:10 UTC
by kmacleod (Initiate) on May 18, 2001 at 16:56 UTC
by tye (Sage) on May 18, 2001 at 23:43 UTC
Back to Seekers of Perl Wisdom