in reply to Unexpected variable assignment

In your my $c = ($a,$b++);, nothing is being done except writing the value of $a into $c, then writing the value of $b (without the ++ incrementation), and in your print statement, it shows the original $b however, your $b is now 6, not 5 because of the () statement.

() with variables in them, as listed, will perform all computations/etc and the values would then be different.

This is the way I've seen it through working with ()...I could be wrong and there could be much better explanations, but that's what I know.