in reply to Syntax Problem

Hi,
Your question is not related to the way numbers are evaluated, but the way print works. When you use a , in your print statement, it will evaluate it as an array.

A good debugging tool is -O::Deparse -p. This will tell you where the parentheses are and will fill in the gaps when it passes through the precompiler. Your first statements evaluates as

print '.102.111.111 - ', '0.102111.111';
This is OK for you?

First of all, it looks at 102.111.111 as: concatenate (0).102 and 111.111 (which are evaluated as digits). And than will make an array with 2 elements and passes this to print. And your second to

print ("$num.111.111 - ").$num.111.111 ;

So, you are concatinating a string with an array, which of course is not correct.
Bottom line: Either use string concatination in print, or use arrays, and if you use both, use parentheses.
use strict; use warnings; { local $,="."; #so you get the . 's print ".102.111.111 - ",102,111,111; my $num=102; print ".$num.111.111 - ",102,111,111; }
Is one of the thousand possible solutions :-)

Added laters: Damned, I must learn to type faster
---------------------------
Dr. Mark Ceulemans
Senior Consultant
IT Masters, Belgium