In other words, the easiest (and proper) way to achieve persistence across requests is to use sessions (CGI::Session), which makes your data being stored/retrieved independently of the process handling the current request.
Yup, global variables should be used to cache data or expensive objects like DBI handles, not for maintaining state
Comment on Re^5: Global Variables Not Acting Global (FCGI)