You don't need any CSS, Perl, Java, Flash or anything particularly flashy if you want this.
The easiest way of doing something like this is to use something called .htaccess and .htpasswd files. These are little text files that sit in with your website and allow and deny user access with a pop up box asking for a username and password. It's all pretty secure, everything's encrypted (so even if someone got hold of the password list they couldn't decypher it).
There are a whole load of tutorials out there on how to set these up. It's dead simple to do.
The passwords and usernames are all stored on your website (scrambled), so you don't need to set up any tricky databases. then after it's all set up and so on, you can look into PHP scripts to make the login a bit tidier and stuff, but it's really easy and works. Problem is that you can't easily identify or customize pages to who is logging in.. it all looks the same for everyone.. If you want a more sophistocated process you'll have to dig deeper than this method.
You will need to find a .htpasswd generator for to use it though (hundreds of free ones online). this encrypts the stuff for you properly. Find one and bookmark it!
The link below should explain better.