As I mentioned in the initial post, both $sid and $session are carried through and re-called by the function &call_vars (and my
use strict would have complained loudly about undeclared variables). It works very well for me on every other variable I move from one page to another. However, maybe I shouldn't try to carry $sid and $session like the other variables even though they're scalar variables and the hidden field method I was using works well.
I was considering CGI::Session because I needed to pass along a referenced array used in my HTML::Template. Hidden fields would not work for a referenced array, so I was looking for something to maintain persistent state. Thanks for taking a look at it.