Notionally, a fully loaded SV looks vaguely like this: SV*->[ SVANY ]->[ IV ] [ FLAGS ] [ NV ] [ PV ]->"some text" What my code above does is this: SV*->[ SVANY ]->[ IV ] [ FLAGS ] [ NV ]<-+ [ PV ]--+ Point the PV at the memory holding the NV.