in reply to Pre-increment *and* Post-increment
It's because unlike += the ++ perl operator (prefix or postfix) returns an rvalue, not an lvalue. You can't do ++$a = 8 or $a++ = 8 either.
Update: swapped rvalue and lvalue, as noted by calin.