Presumably it was to minimize the operators used.
Yup. It thought it would make it easier to understand the problem (the programming challenge). It is also to limit the number of possible solutions. If there are many building blocks the search space is large but also full of good solutions. Then even a random search works. With this I hoped to demonstrate that even with limited building blocks the algorithm can work to a good solution. (It would be interesting to create a Perl program that can determine the solution density, say using monte carlo or so).
I was a bit surprised at|=
:) I added that to show that the algorithm can come up with solutions that are not easily visable to humans. You can even add things like
$x ^= 715; $x >>= 1;
and it will come up with surprising results.