in reply to Daft text adventure project
Not only should you use strict;, you should embrace Object Oriented Programming concepts. As such, the undo is trivial—copy the object first and throw it away rather than copying it back with changes made. Learning how to architect a large project uses totally different skills than learning how to write in Perl (or whatever language).
Edit 2001-05-30 by mirod: fixed typos