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
