in reply to comma-operator quirks

You have one print statement, which takes two arguments, the first is the result of $a=3 and the second is the result of print $a-5.

To evaluate the two prints, the arguments need to be procecessed before the function is invokved. If you have a function with several arguments:

print $a+3, $b-2;

The order in which arguments are prepared is arbitrary. Programming languages generalll have some limits on how much you can vary a variable within a single range, say within a single statement.

Although you have two sub-statements, Perl apparently performs all the pre-processing before either print is invoked. But it could just as easily be implemented so that $a-5 is evaluated before $a=3.

--
TTTATCGGTCGTTATATAGATGTTTGCA