Hmmm, looks like a bug :) For the deep recursion problem, I didn't really understand what happened, but I didn't care too much because it works fine anyway :)
BTW I'm surprised to see that there so few text-based adventure games on perlmonks, and I started working on it more seriously :)