#!/usr/bin/perl -w use warnings; use strict; use Tk; use Devel::Peek; my $scale = 22.5; my $x = 14; my $foo = $x * $scale; # use in numeric context (set NV and IV) my $sb = 22.5 * 14; my $i=0; print "\n0 str: <$scale> / num: <".(0+$scale)."> product $foo should be $sb\n"; Dump($scale); my $mw = MainWindow->new; $mw->Entry(-textvariable=>\$scale)->pack; $mw->bind("",\&calc); MainLoop; sub calc { $foo = $scale * $x; my $s2 = $scale.' '; my $foobar = $s2 * $x; $i++; print "\n$i str: <$scale> / num: <".(0+$scale)."> product $foo stringified $foobar should be $sb\n"; Dump($scale); } #### 0 str: <22.5> / num: <22.5> product 315 should be 315 SV = PVNV(0x19572d0) at 0x1982d20 REFCNT = 2 FLAGS = (NOK,pIOK,pNOK) IV = 22 NV = 22.5 PV = 0x196fa80 "22.5"\0 CUR = 4 LEN = 32 1 str: <22.5> / num: <22> product 315 stringified 315 should be 315 SV = PVMG(0x1ed5f60) at 0x1982d20 REFCNT = 3 FLAGS = (GMG,SMG,IOK,NOK,POK,pIOK,pNOK,pPOK,UTF8) IV = 22 NV = 22.5 PV = 0x196fa80 "22.5"\0 [UTF8 "22.5"] CUR = 4 LEN = 32 MAGIC = 0x1fa6a30 MG_VIRTUAL = &PL_vtbl_uvar MG_TYPE = PERL_MAGIC_uvar(U) MG_LEN = 24 MG_PTR = 0x1f24b40 "\260(=\252\254\177\0\0\20==\252\254\177\0\0\0j\372\1\0\0\0\0" 2 str: <22.5> / num: <22> product 308 stringified 315 should be 315 SV = PVMG(0x1ed5f60) at 0x1982d20 REFCNT = 3 FLAGS = (GMG,SMG,IOK,NOK,POK,pIOK,pNOK,pPOK,UTF8) IV = 22 NV = 22.5 PV = 0x196fa80 "22.5"\0 [UTF8 "22.5"] CUR = 4 LEN = 32 MAGIC = 0x1fa6a30 MG_VIRTUAL = &PL_vtbl_uvar MG_TYPE = PERL_MAGIC_uvar(U) MG_LEN = 24 MG_PTR = 0x1f24b40 "\260(=\252\254\177\0\0\20==\252\254\177\0\0\0j\372\1\0\0\0\0"