in reply to Re: 0.123, float or integer
in thread 0.123, float or integer

After a good nights sleep I looked more thoroughly using Devel::Peek as you pointed me to.
And now I think we're closing in.

In the test script:

Dump($v2); ## prints SV = PV(0x176ec38) at 0x1765274 REFCNT = 1 FLAGS = (PADBUSY,PADMY,POK,pPOK) PV = 0x17601c0 "3.25"\0 CUR = 4 LEN = 8 my $v3 = 2.5 * $v2; Dump($v3); ## prints SV = NV(0x1761830) at 0x177ee88 REFCNT = 1 FLAGS = (PADBUSY,PADMY,NOK,pNOK) NV = 8.125
BUT with the original program
Dump($v2); ## prints SV = PV(0x1b69008) at 0x1b87164 REFCNT = 1 FLAGS = (PADBUSY,PADMY,POK,pPOK) PV = 0x1b6ab58 "3.25"\0 CUR = 4 LEN = 5 my $v3 = 2.5 * $v2; Dump($v3); ## prints SV = NV(0x178ecbc) at 0x1b87218 REFCNT = 1 FLAGS = (PADBUSY,PADMY,NOK,pNOK) NV = 7,5
From this I gather that the problem has something to do with the decimal delimiter, maybe the locale or somesuch has been changed under my feet. The difference between the original script and the test is that the original uses DBI

I will now upgrade my Activestate 623 distribution to 631 to see if this resolves the problem

More ideas ?

---
It's unfair to be an expert.

Replies are listed 'Best First'.
Re: Re: Re: 0.123, float or integer
by jmcnamara (Monsignor) on Feb 06, 2002 at 10:57 UTC

    Well done. That's interesting. I've been bitten by that before but not in Perl.
    perl -le 'print 2 * "21.654"' # 43.308 perl -le 'print 2 * "21,654"' # 42

    --
    John.