As per handling the 'back' data, I'm encountering a similar problem, and I think what I'll do is create an array of hashes. Each 'page' would write a hash of settings, and push that onto the array. Subsequent pages create new hashes which are pushed onto the back of the array. To determine the value of a variable at any time, run through the array looking for a given key in the hashes, and return the last instance found. To go back, simply pop off the last hashref from the array.
Dr. Michael K. Neylon - email@example.com
"You've left the lens cap of your mind on again, Pinky" - The Brain