You didn't secure your 'site'.
When visitors load your perl script(s) - however you've arranged to do that in Apache - your script reads their sent cookies, find the one it's interested in, looks that up in its session store (might be a DB_File archive on disk) and attempts to load a "session" from the store.
It's your decision what to do from there; you're probably telling the visitor to log in if there's no session, and otherwise showing (the logged in user) privileged parts of your 'site' (possibly including a 'logout' option which destroys the session store for that logged in user).
For that other folder to be 'protected' you'll need to serve it using another perl script. Either by:
- a) rewriting requests, or
- b) writing a mod_perl authentication handler which recognises the session store
- c) changing your session module to one that is integrated better with Apache
Not sure how up-to-date it is, but Apache::SessionManager appears to offer a session API that's accessible from both your perl code and as an Apache authentication hander -- exactly what you asked for, IMHO, except that it's not CGI::Session doing the implementation - i.e: option c) above.