From:                   p sena <[EMAIL PROTECTED]>
> Could someone pls explain me behind the hood thing for --
> $x = "041"
> $y = 12
> then $z = $x + $y, how this comes to be numeric addition. 

In Perl + is always numeric addition. Always. No matter what the 
operands are. As such it first evaluated both operand in numeric 
scalar context.

> This will
> also be seen for any number of those initial zeros in $x and may also
> exist in similar way in $y too. I believe this comes for dynamic
> languages prop ? If this is so then can one do arithmetic(inclusive of
> comparison tests) freely on such situations, without taking into
> concern whether the $x (for example) above comes with zero perpended
> (for cases of digits from 0-9) or is a two digit number itself (like
> numbers > 10) ? I mean I can do 04 + 12, 00104 + 01, 0101 + 2.50,
> 044.25 + 02.50 etc.. 

Likewise > is always numeric comparison. Always. If you want a string 
comparison you need to use gt.

Some languages, even dynamic-typed ones, use + for both addition and  
concatenation and < or > for both numeric and string comparison and 
choose the right operation based on the types of the values. Which 
often leads to hard to find bugs. Like for example

   document.frm.fld.value += 1;

What would you expect it does? Increment the value? Nope. It appends 
"1" to the value! Disambiguating numeric and string operation is yet 
another thing that Perl does right.

OTOH, be careful with the leading zeroes! 
  "074" == 74
   074  != 74

The catch is that a numeric literal starting with zero (not folowed 
by 'x') is assumed to be octal, not decimal. So 074 is 7*8+4 not 
7*10+4. "074" is not a numeric literal, it's a string literal. But if 
you evaluate a string in numeric context then Perl takes everything 
that looks like a decimal number at the start of the string (skipping 
any whitespace). 

Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
        -- Terry Pratchett in Sourcery

_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to