note
ambrus
<spoiler>
<p>
Hmm let me think. It's in eval, so simple errors like <c>m</c> or <c>die</c> won't do anything. <c>exit</c> will quit. But <c>dump</c> is before <c>exit</c>. Is there anything earlier?
<p>
Let me look at the keyword list at [ode getprotobyname generator]...
<p>
Hmm, maybe the disaster you have expected was a <c>fork</c> bomb... I think <c>eval"redo"</c> isn't an infinite loop, but I try it in the console to be sure. Hmm. It <i>is</i> an infinite loop the way your code is now, because it jumps to the beginning of the while loop and the <c>$s++</c> gets skipped.
<p>
Let me think that dump thing over. I think they're planning to remove that keyword so it can only be called as <c>CORE::dump</c>. I look it up in the manual... Try it in the console... So it warns only for now.
<p>
Ok, there's nothing more I can think of, so my prediction is that it will dump core.
</spoiler>
<p>
<b>Update:</b> Ok, let me think this over again after reading the other replies.
<spoiler>
<p>
Firstly, I realized that <c>fork</c> wouldn't cause a fork bomb as I thought for some reason, only fork exactly once. Now I didn't realize <c>getc</c> would do something significant (as opposed to, say, <c>warn</c> which just prints some output) until I've read [FunnyMonk]'s reply. So this means that if we get over <c>dump</c> and <c>exit</c>, the script would <c>fork</c> exactly once and then try to read the terminal from both processes. This is not the typical job control situation, because the two interpreters are in the same process group, so I have to look it up in the manual what happens exactly. *looks it up* I can't find it out from the manual. Let me try. *tries* Apparently nothing special happens, they read lines after each other in some random order.
<p>
Secondly, I realized that I thought of <c>redo</c> but not <c>last</c> or <c>next</c>. <c>last</c> would obviously exit the loop and thus end the program. <c>next</c> would also cause an infinite loop the same way as <c>redo</c>, but this could be avoided by putting the <c>$s++</c> in a continue block.
<p>
Of course, none of these change my answer being <c>dump</c>.
</spoiler>
619650
619650