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, $/;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Different behaviour of count++ or misunderstanding?
by hdb (Monsignor) on Apr 11, 2014 at 09:39 UTC | |
by vagabonding electron (Curate) on Apr 11, 2014 at 10:10 UTC | |
Re: Different behaviour of count++ or misunderstanding?
by kcott (Archbishop) on Apr 11, 2014 at 23:08 UTC |
Back to
Seekers of Perl Wisdom