Game Development Community

Post increment nightmare

by Mark Brown · in Torque Game Engine · 11/10/2006 (1:26 pm) · 1 replies

Two whole days to learn the following language difference:

Perl and C

@array = ( 4, 4, 4, 4, 4, 4 );

$probe = 2;
$array[ $probe++ ] = 7;
for ( $ja = 0; $ja < 6; $ja++ )
{
$jb = "Element number " . $ja . " equals " . $array[ $ja ] . "\n";
print "$jb";
}

OUTPUT!!
Element number 0 equals 4
Element number 1 equals 4
Element number 2 equals 7
Element number 3 equals 4
Element number 4 equals 4
Element number 5 equals 4

AS OPPOSED TO:


Torque Script

for ( $ja = 0; $ja < 6; $ja++ )
{
$array[ $ja ] = 4;
}

$probe = 2;
$array[ $probe++ ] = 7;
for ( $ja = 0; $ja < 6; $ja++ )
{
$jb = "Element number " @ $ja @ " equals " @ $array[ $ja ];
echo ( $jb );
}

OUTPUT!!
Element number 0 equals 4
Element number 1 equals 4
Element number 2 equals 4
Element number 3 equals 7
Element number 4 equals 4
Element number 5 equals 4


The command "$array[ $probe++ ] = 7" post increments in C and pre increments in
Torque ( like $array[ ++$probe ] = 7 in C )

TWO WHOLE DAYS!!!
BEWARE!!

#1
11/10/2006 (1:37 pm)
Yeah. it's a slippery one to track down. there's more discussion here.