Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Content management system = perl coming of age ritual?

by BUU (Prior)
on Jul 07, 2003 at 22:47 UTC ( #272130=perlmeditation: print w/replies, xml ) Need Help??

After looking around at a few monks homenodes, I've noticed that many people say they are in the process or have written some form of CMS in perl. So this is some what of an informal survey namely: "How many of yall have written your own content management system/forum/similar type thing"? I know I've written atleast two (or three, depending on how one counts such things).
  • Comment on Content management system = perl coming of age ritual?

Replies are listed 'Best First'.
Re: Content management system = perl coming of age ritual?
by dws (Chancellor) on Jul 07, 2003 at 23:21 UTC
    "How many of yall have written your own content management system/forum/similar type thing"?


    One of the things that got me into Perl was Ward Cunningham's original Wiki server, which was a single Perl CGI written in a semi-literate fashion (it bootstrapped itself from a set of Wiki pages). I thought Wiki was way cool (this was '95, and it was still way new), and grabbed the source for study. It proved not to be the world's best Perl, and I submitted several fixes, and later some extensions. That got me hooked. I've since written my own Wiki (and have replaced the codebase twice), and my own blogging software (twice). I think that particular set of itches is well-scratched now. Perl made the scratching easy.

    But, time goes on, and eventually I realized that it was easier to let other people maintain stuff, so I switched to MoveableType. I'm now considering switching over to Bloxsom, for more fine-grained control.

Re: Content management system = perl coming of age ritual?
by erikharrison (Deacon) on Jul 08, 2003 at 01:53 UTC

    Guilty. Oh so guilty.

    A "module" (no package, no importing, just slurp it all into main) which implemented a some CGI utility functions, a script to do CMS, and a message board script. All bundled together. All ugly.

    Module contained a file slurping function, a hand rolled CGI form parser, mostly copied from Matt's Script Archive, a crappy ass templating system (a single regex wrapped in a function) and a terrible totally broken XML parser.

    To be honest, it's probably one of the few pieces of code I really *like*. But, like the man said, kill your babies. And I'm better for it


    Light a man a fire, he's warm for a day. Catch a man on fire, and he's warm for the rest of his life. - Terry Pratchet

Re: Content management system = perl coming of age ritual?
by perrin (Chancellor) on Jul 08, 2003 at 01:45 UTC
    It's true, many people have done something like this in Perl, but I think the real issue is that you can call almost anything that stores data and displays it a CMS. This thread already has people who wrote a wiki and a BBS calling them CMSes, so nearly anything qualifies. This is also why you don't see a lot of reuse in the field: people's definitions are so broad that one group's idea of a CMS rarely meets the needs of another group.

      Agreed. Anything can be considered 'content'. You might as well call it a DMS (Data Management System).

      I have written (helped write) a CMS for a company that hosts and manages multiple websites through a WYSIWYG editor for the content, and using pre-packaged templates for the design and layout of the site. Really geared for small to medium sized businesses to get them on the web.

      To get onto the thread about templating systems. I was quite proud of my templating system :), and even talked to you (perrin) about it when you were writing your Choosing a Templating System article. You heard me mention something about it on the mod_perl list and asked me why I had written my own templating system. This was a few years ago, and I have learned the ways of HTML::Template since (my module was actually quite similar to HTML::Template having loops and includes and such, although not as fast and cleanly implemented).

      Even though I have many modules that I have written in the past that I no longer use, and even dread looking at, I am still glad that I wrote them instead of just using the CPAN equivalent. It really taught me a lot to see how I attacked a problem and then later on see how others solved the same problem.

      These days I try not to reinvent the wheel, but when I was starting out, writing these tools from scratch was an invaluable learning experience. So, what I am suggesting here is that everyone should take the time to write a templating module... Just don't release it on CPAN 'cause we've got enough there already :)

      - Cees

      I feel guilty twice, not only I built a CMS, but I also made a templating system; it seems to be a common sin here :)

      Besides that, the first CMS has been the most exciting project I've ever done. I'm still convinced that my approach was different from the ones listed by perrin in his enlightening article for Since then I changed work place, but I continue to develop a slightly different version in my spare time. I think that these kind of projects is very helpful to learn and give many satisfactions. My current dream is to develop a CMS for Panini Group, possibly with help from bronto and larsen, maybe using Mason.

      The thing that I will miss most is the talk from perrin at TPC7; I think that his comparison of "Object-Relational Mapping Tools for Perl" can give good directions when building CMSs. perrin, will you write another article for :))

      Ciao, Valerio

      update: Thank you very much perrin! Now I must convince the other ones: TheDamian, MJD, merlyn, acme and BigAl :))

        I do intend to write up an article version of this year's talk. Of course first I'd better finish tweaking my presentation slides...
Re: Content management system = perl coming of age ritual?
by Mr_Person (Hermit) on Jul 08, 2003 at 00:36 UTC
    I suppose I've written one, if you count the commenting features of Poll Central. But I think a more accurate Perl coming of age ritual is writing your own templating system. Come on, admit it - we've all made our own (probably really bad) templating system when we were first starting out! Thankfully, I found out about HTML::Template and later Template Toolkit before too long. :-)
      Heh, I might have chosen templating... except I've never written my own templating system! I'm not sure why, since I have a distinct tendency to re-invent the wheel, but I learned about HTML::Template early and have been using it ever since.

      Maybe you are right. I made my own templating system as well ... for RTF ;-) But that's probably just because I was never doing much CGI ...

      Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
         -- Rick Osborne

      Edit by castaway: Closed small tag in signature

Re: Content management system = perl coming of age ritual?
by revdiablo (Prior) on Jul 08, 2003 at 05:55 UTC

    /me sheepishly raises his hand and is counted

    I have indeed created my own simple CMS (if it can even be called that) in Perl. You can even read about it here. It's called the RevDiki, mostly because I have a problem with creativity when it comes to project names, so I usually ram my online handle together with something that describes the project. (other examples include Revdiablo's Mail Filter and revdrip. It's just so easy like this.)

Re: Content management system = perl coming of age ritual?
by naChoZ (Curate) on Jul 08, 2003 at 12:45 UTC
    I think one reason people roll their own CMS is because they want certain features that they might not be able to find elsewhere.


      Or perhaps they don't want features they find elsewhere. My biggest complaint with existing CMSes is that while they are flexible enough to do what you need, they have a lot of extra baggage along with them.

      Ironically, I'm in the testing stage for my own fourm system . . .

      I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
      -- Schemer

      Note: All code is untested, unless otherwise stated

Re: Content management system = perl coming of age ritual?
by samtregar (Abbot) on Jul 08, 2003 at 19:49 UTC
    I'd say that 80% of the Perl programs I've written in the past five years could be considered content management systems. The class of software that gets the "CMS" label is so varied that I'd be amazed if any working web developer hadn't written one! Pretty much anything that lets users edit stuff online that will later be viewed by a different class of users is plausibly a CMS.

    Of course, if you're talking about monolithic works-for-everyone web-publishing systems, I've been there too. And, like the future governor of California says, I'll be back.


Re: Content management system = perl coming of age ritual?
by b3b0p (Initiate) on Jul 08, 2003 at 20:17 UTC
    Why is writing a CMS or whatever you want to call it considered such a sin here?

    It would seem to me that it would be a good starting point for beginner perl programmers.

    Forgive my ignorance, but I am interested in learning perl. And I would just like to write my own blog type script to enter/store/output a simple personal blog type website. I know MovableType is superior and will do exactly what I want, but writing it myself also gives a nice sense of accomplishment. Plus that is the way I learn best: By actually doing it.

    It may suck when I finish, but most likely I at least learned something I did not know before. Which is worth it to me. Who knows, perhaps 100's of 1000's of people will be downloading my blogging software instead someday. It could happen.

    Perhaps someone can convince me otherwise

    Thanks, Chris

      b3b0p - You're absolutely right to create something which interests you as a practice for your own skills. And it's perfectly possible that in doing so you might produce something which is indispensible to others.

      However, one of the fundamental principles driving the perl community is 'laziness' (in a positive sense) and this more or less dictates that if someone has already produced a script which does the job perfectly well (eg a module on the CPAN), then don't try to reinvent the wheel (there are anyway almost always problems down the line which have already been ironed out in the modules)

      So if you were to post a message saying that you are interested in creating a script to do this, that ot the other, the first thing to happen is that you would be grilled on the need to do it because there are x,y, or z modules on the CPAN. If you successfully argue your case then you would find a lot of support from the people at PM to help you achieve this. If not...

      So carry on doing your own stuff to improve your skills an who knows, you may yet write that piece of software you dream of. And don't forget that if the community he created had been around at the time Larry Wall was writing Perl, he would probably have been given a pretty hard time about it himself!!

      Sorry if this does not convince you otherwise ;)

Re: Content management system = perl coming of age ritual?
by talexb (Canon) on Jul 08, 2003 at 19:24 UTC


    Actually, mine is more of a 'mung all *.txt files into *.html files while adding common headers, footers and a menu thingie', but it's been heavily used ever since I wrote it ages ago. I keep meaning to move to a real CMS with a database underneath it and CGI pages to update the information, but I never seem to have time. I've used Template Toolkit at work (nice piece of code) but it's not really what I want to use for my web sites.

    Maybe this summer ..

    --t. alex
    Life is short: get busy!
Re: Content management system = perl coming of age ritual?
by webfiend (Vicar) on Jul 08, 2003 at 18:31 UTC

    Wow. I'm actually not guilty of this :-) I did consider the idea at length a while ago, but my thought was definitely more of a templating system than a CMS. I've been quite happy with WebMake as my CMS of choice for quite a while. I am much more likely to add useless features to an existing content management system than to create my own. There are just so many good ones out there!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://272130]
Approved by dws
Front-paged by Enlil
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2021-04-10 12:45 GMT
Find Nodes?
    Voting Booth?

    No recent polls found