|Think about Loose Coupling|
I've been making CBT for quite a while and I still look back with some fondness at that time. But anyway... of course it's a piece of cake to build good CBT with HTML and Perl (throw in some MySQL). I just wished I had Perl and HTML (and MySQL) 16 years ago... It would have been so much easier.
But please don't make the same mistake as CBT-developers of all times made. It's not the tools with or the media on which the CBT is made. It's always about the content. And of course the way you present the content is important, but not as important as the content itself. Good written text, presented in small enough parts so the reader won't get frustrated. Good questions, good answers, good record keeping, low reaction times.
Good CBT can be made with MS-DOS batch files, bad CBT can be made with the most modern and best content management systems (which tend to be horribly slow). Many many books have been written and, as it seems, seldomly read.
As to your suggestion to write CBT which contains something for judging Perl scripts: that's closer to Artificial Intelligence than to CBT. Debuggers can do a lot nowadays, but not checking for something to have a desired outcome.
I've seen the prices paid for CBT these days and I think they're ridiculously low. No fun or honour in there any more. I guess I'll stick to writing and consulting and maybe some more programming.
There are a lot of reasons why there are so small amounts of good CBT and why CBT is not used much more. The same with good websites. Lots of people think it just comes in for free, and don't want to pay for it.
Update: corrected spelling mistakes (again)(2x) and added a sentence at the end.