in reply to Checking for "return undef"

You don't appear to be checking your return values:

# load session from db my $s = Mapps::Session->new(); $s->load_session($sid); # session is good continue if (defined $s){ $m->call_next; }

I see nothing in load_session() which would undefine $s. Try this:

# load session from db my $s = Mapps::Session->new(); if (defined $s->load_session($sid)) { $m->call_next; }

Cheers,
Ovid

New address of my CGI Course.