Is there anything wrong with this benchmark?

Class::Method::Modifiers versus $self->SUPER.

The exec summary is:

$ dumbbench perl 
cmd: Ran 21 iterations (1 outliers).
cmd: Rounded run time per iteration: 2.0408e-02 +/- 3.6e-05 (0.2%)
$ dumbbench perl 
cmd: Ran 22 iterations (2 outliers).
cmd: Rounded run time per iteration: 1.5050e-02 +/- 6.9e-05 (0.5%)

So Class::Method::Modifiers seems 30% faster. I'm guessing that this is the result of not having the subroutine overhead call on every invocation. Am I right? How does this work?

DBD::Oracle Trial Release 2

Following our initial trial release, here's another one.

We've attended to the changes suggested from the last release (better changelog and CI integration) and we've also attracted some positive attention from the relevant authorities.

We're still looking for sponsorship to have DBD::Oracle work continue beyond this driveby. If you are interested, or know someone who's interested in chucking some cash into the pot, the best route is probably to contact me (kd) on or via my cpan email address, zarquon [at]

DBD::Oracle Trial release.

tl;dr: If you care about DBD::Oracle at all please test this unauthorised trial

Trying to make confluence usable.

=head1 RESTfluence

I've tried to make this blog post copy/pastable as valid perl and valid markdown. So with luck it can be copy/pasted into an editor if you want to use this.

Confluence. I don't really like it, but the major thing it's got going for it is that it's not Sharepoint. As I am spending the summer holidays doing some documentation at work, one of the things I wanted to do was to make confluence less hateful. So I cracked open the REST API to see how far I could get.

There used to be good tools, but atlassian got rid of the XMLRPC API not that long ago.

Progress I made was:

  • Got a list of all spaces, and all pages in each space.
  • Worked out how to obtain the content of a page.
  • Worked out how to change the content of a page (for when the time comes).

Where I got stuck:

  • Working out how to round-trip the confluence markup to/from markdown.

The rest of this post describes the script I put together. It's not useful enough for me to put on the CPAN but it's worth putting up somewhere.

A happy mod_perl story

10:26 < kd> me:  "how do I integrate the REST API with our psgi/mod_perl abomination?"
10:26 < kd> colleague:  "aah I've been wanting to do that for a while, do you really need it?"
10:26 < kd> me:  "yeah it would be good"
10:26 < kd> [waits two days]
10:26 < kd> colleague:  "here, have a code review"
10:29 < kd> meanwhile it gave me the opportunity to prototype an important thing via a semi-abomination that would never be acceptable in production.  So 1. We got a feature we really needed, and ensures the longevity of the platform, and 2.  I got to do the important thing of  getting my thing wrong on the first try.

About kd

user-pic Australian perl hacker. Lead author of the Definitive Guide to Catalyst. Dabbles in javascript, social science and statistical analysis. Seems to have been sucked into the world of cloud and devops.