Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • You've got a pretty big vested interest in Apache/mod_perl, and while I did previously, I don't any more. I have to be honest in that writing AxKit2 this way was mostly because I was curious as to how good it could be. I know pretty much for a fact that it'll be slower than mod_perl, because Apache2's connection handling and perl integration is very well built and designed.

    However now AxKit2 is built I find it much easier to hack on than mod_perl, and not just because I know the internals. Adding a new config directive is just a matter of adding:
    sub conf_Foo_Bar;
    to your plugin, which is just so sweet compared to mod_perl2 config directives. Similarly hooks are easier to write.

    Profiling comes via "perl -d:Profile axkit" and running your app.

    The test suite (Apache::Test) launches and stops the server almost instantaneously.

    These little things make a big difference to me. Obviously people's mileage varies on that, and there is a big gap in stuff currently available for mod_perl (auth plugins being a huge example) that just aren't there for AxKit2.

    The other thing is right now hacking on scalable IMAP webmail, just wouldn't work as well in multiple processes. I can cache the connection, the folders, and the mailbox contents all in a single hash. That's pretty sweet IMHO. [ However then you get into the other side of the scalability problem - migrating that to multiple web servers just wouldn't work - ah well ]
    • Adding config stuff was pretty bad in mod_perl 1. It's supposedly easy in mod_perl 2, but I've never wanted to add a config directive so it's not something I pay attention to. I really don't use any of the Perl config stuff in mod_perl at all. It just doesn't appeal to me.

      Profiling, quick restarts -- well, they work for me in mod_perl. (This reminds me of working at a place that used IBM WebSphere, where restarting the dev tools to pick up a code change took 10 minutes! What a pig that thing was.)


      • I think partly people don't add custom config in mod_perl apps because they're hard (still non-trivial in mod_perl2 - that was one of my stumbling blocks in doing a straight AxKit port to mp2), and partly because they are satisfied with "PerlSetVar" which I never really liked as it didn't seem to cope with multivalues terribly well, and partly because none of the introductory docs cover them. I've tried to make sure my introductory docs jump right into them because they're terribly useful.

        Another option I'm