On Fri, 25 Feb 2022 15:55:00 +0900 Yuki Kimoto <kimoto.yuki@gmail.com> wrote: > 2022-2-25 1:31 Paul "LeoNerd" Evans <leonerd@leonerd.org.uk> wrote: > > > > > * We've finished the PV vs. IVNV split that PR #18958 began, so > > now we can perfectly remember "was originally a string" vs "was > > originally a number". > > > > > A Perl big problem is that when a value is touched, the type of value > is changed. > > When a value is created or updated, the type of value is created or > changed. This is understandable. > > However, in current Perl, only touching a value changes the type of > the value. This is strange. > > This reason is that the type of value is used internally and the type > is changed freely. > > Is it possible to design the user type that is not affected by > touching? > > I think it's important that the types of the number and string don't > change unintentionally. That is the entire point of the above-mentioned PR, yes. It stops perl adding the (public) SvPOK flag to SVs as a side-effect of looking at their stringy value. It means that values which started off numeric *remain* numeric and never gain that SvPOK flag, meaning you can now reliably distinguish that they originally started off as a number. -- Paul "LeoNerd" Evans leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/Thread Previous | Thread Next