Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Different behaviour of count++ or misunderstanding?

by vagabonding electron (Hermit)
on Apr 11, 2014 at 08:53 UTC ( #1081934=perlquestion: print w/ replies, xml ) Need Help??
vagabonding electron has asked for the wisdom of the Perl Monks concerning the following question:

Dear Monks,

I am chasing my off-by-one-error while solving this one and noticed a strange behavior (well, strange in my eyes :) ) of count++.

Here is a minimal example. As posted it prints 4 then 3. If I comment count++ and above the push and uncomment count++ below it prints 4 then 4, as I would have expected in the first case as well. This difference happens on the first occurrence only. Why?

Thanks in advance!

#!/perl use strict; use warnings; my @AoA_1 = ( [ 2, 5, 9 ], [ 7, 6, 5 ], [ 1, 8, 3 ], [ 2, 5, 9 ], [ 7, 6, 5 ], [ 1, 8, 3 ], ); my @AoA_2 = ( [ 9, 5, 2 ], [ 3, 6, 5 ], [ 0, 8, 3 ], [ 9, 5, 2 ], [ 3, 6, 5 ], [ 0, 8, 3 ], ); my $count; my @test_array; for my $n ( 0 .. $#AoA_1 ) { my @a1 = @{$AoA_1[$n]}; my @a2 = @{$AoA_2[$n]}; for my $i ( 0 .. $#a1 ) { last if $a1[$i] < $a2[$i]; next if $a1[$i] == $a2[$i]; $count++ and push @test_array, $n # and $count++ and last if ( $a1[$i] > $a2[$i] ); } } print $count, $/; print scalar @test_array, $/;

Comment on Different behaviour of count++ or misunderstanding?
Select or Download Code
Re: Different behaviour of count++ or misunderstanding?
by hdb (Prior) on Apr 11, 2014 at 09:39 UTC

    In the first iteration $count++ evaluates to zero and thus the and short-circuits and the push is not executed. If you compare the contents of @test_array in both cases you will see that the first element is missing.

      Thank you very much! After changing $count++ to ++$count there is no difference anymore.

Re: Different behaviour of count++ or misunderstanding?
by kcott (Abbot) on Apr 11, 2014 at 23:08 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1081934]
Approved by Corion
Front-paged by mtmcc
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (11)
As of 2014-09-19 17:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (143 votes), past polls