Majian wrote:
Hi ,all:

Hello,

 When I test the increment operator in Perl and  find   a question :

The question is :
#!/usr/bin/perl
use warnings;

my $i = 1;
print  ++$i  + ++$i, "\n";

The above code prints  out  the answer 6 .
But in the other language  the anser is 5 ,

And the lesson to learn from this is: *don't* *do* *that*!


perldoc perlop
[ snip ]
    Note that just as in C, Perl doesn’t define when the variable is
    incremented or decremented. You just know it will be done sometime
    before or after the value is returned. This also means that
    modifying a variable twice in the same statement will lead to
    undefined behaviour.  Avoid statements like:
    ^^^^^^^^^^^^^^^^^^^

        $i = $i ++;
        print ++ $i + $i ++;

    Perl will not guarantee what the result of the above statements is.



John
--
The programmer is fighting against the two most
destructive forces in the universe: entropy and
human stupidity.               -- Damian Conway

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to