in reply to CGI::Session not saving with IIS

You try to receive the session ID via $cgi->param('sessionid'), but you never provide a session ID parameter in the URL or in a POST request.

Try this:

my $self_url = $cgi->self_url() print qq{<a href="$self_url?session_id=$session_id">next page</a>\n}

And then use "next page" link. (Later on you should move the session ID to a cookie, but for texting the URL is fine).

Also please remeber to call ->flush() on your session object to actually store it to disk.