in reply to Re^3: Getting different results with $var++ and $var += 1
in thread Getting different results with $var++ and $var += 1

I just got back to my desk for the first time since I posted last night. I'll get to work creating the test version of the object.

Despite the shortcomings of my description of the issue I'm encountering, you did answer with valuable information. I hadn't considered that I might be storing an object in any of those variables. I've been under the impression that an object is just a reference, and I thought that printing a reference would have given me something like "HASH0xbf43" rather than the value I was expecting.

Anyhow, thank you and I'll get back with results as soon as I have them.

  • Comment on Re^4: Getting different results with $var++ and $var += 1

Replies are listed 'Best First'.
Re^5: Getting different results with $var++ and $var += 1
by syphilis (Archbishop) on Dec 03, 2008 at 23:29 UTC
    I've been under the impression that an object is just a reference, and I thought that printing a reference would have given me something like "HASH0xbf43" rather than the value I was expecting

    That won't be the case if double quotes have been overloaded for that (blessed) object.
    perl -MMath::BigInt -le 'print Math::BigInt->new(123)'
    For example, it's that overloading that causes the above one liner to output 123 instead of Math::BigInt=HASH(0x210fe54)

    Otoh, Devel::Peek::Dump(), in addition to providing more detail, is also a *reliable* way of seeing what the scalar actually is.

    Cheers,
    Rob

      Aha! that's it! I'm using Math::BigInt in this package. Serves me right for using a module without knowing how it works internally.

      I moved "use Math::BigInt ':constant';" from the beginning of the package into the (one and only) subroutine in which it is needed. Now my numbers are numbers in the code in question.

      I suspect it would be even smarter to drop the ':constant' and explicitly create BigInts in those few places I need them.

      BTW, Devel::Peek::Dump() isn't showing me anything here. Nothing at all. Blank. That's not what's supposed to happen, but I think that's an entirely different mystery to solve tomorrow, not today. It works elsewhere on this machine, so I'm sure it's working, just somehow being prevented from showing me the results.

      Thank you!

        I'm using Math::BigInt in this package

        Which makes it a little easier to demonstrate how some of those NaN values might arise:
        C:\>perl -MMath::BigInt -le "$x=Math::BigInt->new(123);$x += 'str';pri +nt $x" NaN
        Cheers,
        Rob