in reply to foward/backward within hashes
Create an array of hashrefs, sorted by the time.
Retrieve the next/previous array element as required, dereference the hash and display the information.
Update: Maybe I should explain why: hashes are effectively randomly ordered. By creating the datastructure I suggest, you sort only once, can figure out where in the sort order you are (the current array indice) and can easy retrieve other records with minimal processing (and thought).
If the information in this post is inaccurate, or just plain wrong, don't just downvote - please post explaining what's wrong.
That way everyone learns.