in reply to For loop trouble

Now that others have explained the C-style loop structure that you intended to use, it might help to know that Perl has another kind of for-loop structure: for ( list, of, items ) { ...}

By using commas in your original code, that is the type of loop you created. Your first attempt also demonstrates how this "for (list...)" structure evaluates (creates) the entire list before doing the first iteration. In effect, the OP code is sort of equivalent to:

$i = 500; $i = 900; $i += 100; for ( $i, $i, $i ) { .... }
In this sort of for loop (with no explicit loop variable given, as in for my $x (list...)), at each iteration, the special global variable "$_" is set to the given value in the list, so the body of the loop would have done the same thing as the OP code if written as follows:
my $theta = $T * (( 1013 / $_ ) ** ( 287/1004 )); push ( @press, $_ ); push ( @thetas, $theta );
(updated to fix grammar mistake, and to add more info in last paragraph)