Hello, All! I believe I understand ton's alternative solution...
-p0 s/\.(?=.{$&}(x.{$&})+o)/*/sgwhile$_=reverse,998877e3=~/./g (At first I was confused as to why 998877e3 was needed as opposed to 998877e2, but I suppose since ton is reversing the string in the while condition, rather than in the while block, he needed one more character in order to flip the string one final time. Is there any other purpose for having e3?) ...But I'm having trouble understanding the winning solution: -p0 $_=reverse,s/\.(?=(.{$&}x)+.{$&}o)/*/swhile$^C+=9870=~/./g I looked up the $^C predefined variable and found: The current value of the flag associated with the -c switch. I don't really understand what this means, but I feel that even if I did, I wouldn't be able to figure out how incrementing this variable (or apparently decrementing it, cf. mtve's solution) makes the while loop run more than 4 times. (I have a feeling, however, that the loop is running many more than 9 times as in ton's alternate solution above, and on first glance, I would have declared that we had created an infinite loop.) Many thanks, Riley o0lit3