I'm not sure I understood the last half of your node, but, no, you don't get an "ordinary" increment just because a scalar looks like a number. But it can be hard to distinguish an ordinary (numeric) increment from a magic (stringy) increment in such a case. But here are a couple of examples that demonstrate the difference:

#!/usr/bin/perl -w use strict; my $n= '009'; $n++; print $n, $/; print 0+$n, $/; print $n, $/; $n++; print $n, $/; $n= join '', (1..9,0)x7; $n++; print $n, $/; print 0+$n, $/; print $n, $/; my $p= $n; $n++; print $n, $/; print $n-$p, $/;

which produces (minus the comments, of course):

010 # magic increment preserves leading zeros 10 # treating it as a number doesn't give leading zeros 010 # but doesn't strip them from the scalar 11 # but the next increment is numeric not stringy # stringy increment can deal with /any/ number of digits: 1234567890123456789012345678901234567890123456789012345678901234567891 # numbers only have about 20 significant digits: 1.23456789012346e+069 # treating as a number doesn't destroy the string: 1234567890123456789012345678901234567890123456789012345678901234567891 # but the next increment is just numeric 1.23456789012346e+069 0 # and adding 1 to 1e69 does nothing

Hope that helps.

- tye        


In reply to Re: A somewhat unexpected side effect... (stringy) by tye
in thread A somewhat unexpected side effect... by blazar

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.