You ask how to "track when someone has logged in and logged out."
A simple log file will do the trick: display a login button for non-authenticated users and a logout button for authenticated users; each time a login or logout button is pressed, just append a line to the log file with the information you wish to track (login/logout, timestamp, userid).
Since you stated that you want a scheme similar to Perl Monks, I'm guessing that you may want to be able to display a list of users that are currently logged in. If this is the case, you really cannot be sure who is logged in, since HTTP is stateless and a user can close their browser or stop using your site for a period of time without ever informing your server that they wish to log out. What you could do is, for each user, maintain in some sort of database whether a user has logged in (and not requested logout) along with the time of last access. Then, to determine which users are "logged in", your script would query for all users that have logged in (and not requested logout) and have accessed the site within some set period of time (for example, 5 minutes).