Dr.Ruud wrote: > Rob Dixon schreef: >> Dr.Ruud wrote: > >>> That Data::Dumper prefers to print the numeric face of the variable, >>> if available, is a matter of choice inside the code of Data::Dumper. >>> Maybe the other modules that you use, have Data::Dumper embedded? >> >> That is not true. > > I am not sure which of the above you consider not true, so I'll show it > with a variant of your own code. > My "if available" is equivalent to the "PVIV with IOK" that Devel::Peek > shows. > > $ perl -wle' > use strict; > use warnings; > > use Devel::Peek qw/Dump/; > > my $s = "1234"; > Dump $s; > > 1 if $s == 0; > Dump $s; > > 1 if $s eq "foo"; > Dump $s; > ' > SV = PV(0x89b2ef8) at 0x89c8c30 > REFCNT = 1 > FLAGS = (PADBUSY,PADMY,POK,pPOK) > PV = 0x89c2030 "1234"\0 > CUR = 4 > LEN = 5 > SV = PVIV(0x89b3308) at 0x89c8c30 > REFCNT = 1 > FLAGS = (PADBUSY,PADMY,IOK,POK,pIOK,pPOK) > IV = 1234 > PV = 0x89c2030 "1234"\0 > CUR = 4 > LEN = 5 > SV = PVIV(0x89b3308) at 0x89c8c30 > REFCNT = 1 > FLAGS = (PADBUSY,PADMY,IOK,POK,pIOK,pPOK) > IV = 1234 > PV = 0x89c2030 "1234"\0 > CUR = 4 > LEN = 5 > > The second dump shows that both IOK and POK are. In that case > Data::Dumper (takes the choice and) prefers the numeric > variant/face/value/representation.
That is not a variant of my code, it is very different indeed. Here is what I coded > use strict; > use warnings; > > use Devel::Peek qw/Dump/; > > my $numstr = sprintf("%4d", 1234); > Dump $numstr; > > $numstr = sprintf("%05d", 1234); > Dump $numstr; > > my $num = sprintf("%05d", 1234); > $num += 0; > Dump $num; And that is identical to the OP's, except that I added warnings and strictures, removed an unnecessary 'my' that threw a warning, and called Devel::Peek::Dump instead of Data::Dumper::Dumper. The post you made that I was correcting said, > It is not "in number data type", it is merely available as numeric. (as > I have said before) And I showed with the output from my program that my $num = sprintf("%05d", 1234); $num += 0; Dump $num; gives the output SV = PVIV(0x37604) at 0x357c4 REFCNT = 1 FLAGS = (PADBUSY,PADMY,IOK,pIOK) IV = 1234 PV = 0x183ba74 "01234"\0 CUR = 5 LEN = 8 so the data is indeed "in number data type", and is unavailable in any other form without further conversion. The fact that completely different program produces completely different results is hardly a useful thing to be telling us. Please try to quote relevant parts of the posts you respond to in future. Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/