I've found some great CS lectures on YouTube from Harvard University. It is less basic theory and more practical implementation. However I do like the way they move effortlessly between languages and platforms as they compare and contrast. There are some really nice comparisons between C and Python. Obviously Perl is more like C. It is a good reminder that sticking to C standards and ways in Perl is usually the best option. If you want to program with object orientation you might be better off with Python. I think that if I was programming in Python I would miss the C syntax that you get with Perl. Lexical scoping etc. I suppose the lectures offer a way forward in learning new approaches. If you can compare and contrast two or more different languages you will learn a lot. That can springboard you to some basic theory. If your time is limited you might be better off learning theory alongside pseudocode.