in reply to order of arguments evaluated

The increment operator is evaluated before the comma operator is, I believe due to higher precedence. It is unwise to mix increment/decrement ops in a statement with other expressions containing their variables. That is explicitly declared undefined behavior in perlop.

See Matching and order of evaluation for a lively and excellent free-for-all on the subject.

After Compline,
Zaxo