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

use Perl Log In

Log In

[ Create a new account ]

marcel (3299)

  (email not shown publicly)

Journal of marcel (3299)

Thursday February 09, 2006
08:52 AM

Blosxom plugin for Sensei's Library

In my blog about the game of Go I'm using blosxom. Since I'm likely to refer to Sensei's Library, the expansive Wiki for Go players, quite a bit, I wrote a blosxom plugin that makes it easy to create links to Sensei's Library without having to construct the URLs and link markup manually.

The plugin is available for download. Here is how to use it:

A link in a story like this:

<SL:RecentChanges>latest updates</SL>

is turned into a link like this:

<a href="">latest updates</a>

You don't need to escape non-alphanumeric characters in topics. For example, to link to a subpage of a topic, use:


If you don't provide a topic to link to in the <SL> tag, the link text is wikified and used instead. Therefore, the same result as above can be obtained by

<SL>Recent Changes</SL>

As in normal HTML, the tag isn't case sensitive, so you could also use <sl>.

Monday August 25, 2003
10:32 AM

Class::MethodMaker::Util deleted

I've scheduled Class::MethodMaker::Util for deletion from CPAN, as the author of Class::MethodMaker has folded the new method generators into his module, which is a much better solution anyway.

Thursday July 31, 2003
03:32 AM

Weird spam

This morning I received a weird message. Doesn't look like the usual spam, but I do think it is spam...

> Date: Thu, 31 Jul 2003 09:47:14 +0200
> From: "Klingenstijn14"
> To:
> Subject: a question
> Dear Marcel,
> During my search tripp I found you on my route and I am wondering if
> you're willed to answer me.
> I met somebody at the internet but I do not feel really safe to that
> person. First I had permission to support him and got her fixed IP-address
> but seems there's another ip address.
> Can you tell me how I can find out that person still is at it's
> original location?
> Thanks so far.
> Perry

Tuesday September 03, 2002
02:44 AM

Class::Null vs Class::BlackHole vs Class::Void

Oh dear. Before uploading or even writing Class::Null, as with any other class, I've searched CPAN for a module that would do what I needed. But Sean Burke's Class::BlackHole somehow escaped me. It seems to do pretty much what Class::Null does, except that Class::Null is even more minimalistic. Maybe I just scanned the list for things like 'Null' because I was thinking of the Null pattern...

And Class::Void isn't too dissimilar either. Oh well.

02:21 AM

Test::Distribution 1.02 (nee Comprehensive)

Andy Lester suggested to rename this module to Test::Distribution, which sounds a lot better than the old name (and might be more acceptable than "Test::Fascist" - sorry Dave :)). I've also updated the documentation with proper credits this time.

And Matt Sergeant asked for an option to specify only some of the functionality, e.g. only testing pod or only testing 'use'. So that's gone in as well.

Nice to see Open Source working; also read Andy Lester's journal entry at

I'm toying with the idea of adding an 'exports' test option which would go through all of your module's exports (@EXPORT and @EXPORT_OK) after loading it and making sure that there is a test script for each of the exported symbols. *That* would have been really fascist, but now that it's possible to turn certain functionality off...

Monday September 02, 2002
11:43 AM

DBIx::Lookup::Field 1.2

And another release today. DBIx::Lookup::Field 1.2 adds dbi_lookup_field_with_reverse(), which in addition to the lookup hash, also gives you the reverse hash. Just a small convenience function.

Yes, I'm aware of what will happen if you have the same value several times in your original lookup hash. Yes, the function name is pretty long.

11:16 AM

Test::Comprehensive 1.00

Here's a little testing aid. It was inspired by brian d foy (

    $ cat t/01comprehensive.t
    use Test::Comprehensive;
    $ make test ...

When using this module in a test script, it goes through all the modules in your distribution, checks their POD, checks that they compile ok and checks that they all define the same $VERSION.

It defines its own testing plan, so you can't use it in conjunction with other Test::* modules in the same file. Therefore it's recommended that you just create a one-line test script as shown above.

04:38 AM

Devel::SearchINC 1.2

I've updated the module to use Test::More, added a debugging option and resolved a small but somewhat irrelevant bug. And documented it, of course. After changing email accounts several times, I'll only use my mail address in module docs from now on. This makes it much easier to redirect where the mails go to via the PAUSE web interface.

04:32 AM

Exporter::Simple 1.00

At last I've updated Exporter::Simple. With perl 5.6.0, there were no 'our' attributes, and exporting lexicals involved dealing with Filter::Simple and PadWalker and other nastiness. And it made the Exporter::Simple code horribly complicated.

So with perl 5.8.0 out I did a total rewrite. export globals, nor do we need to export lexicals (which was a weird concept anyway). So there's no need for Filter::Simple and PadWalker or any of the ugly workarounds that introduced. And once it occurred to me that Exporter::Simple could just subclass Exporter, and modules wanting to use Exporter::Simple could subclass it, things were a lot easier. Now using the attributes will populate the exporting package's @EXPORT, @EXPORT_OK and %EXPORT_TAGS direcltly, and we let Exporter have its way (with a few slight modifications).

It's beautiful. And more proof of the old adage "if it's too complicated, there's probably something wrong with it" - when it's right, it's rather simple and elegant and things easily fall into place.

Friday August 16, 2002
12:01 PM


Class::Null, on its way to CPAN, implements the Null Class design pattern. The code is exceedingly simple, but the manpage explains the concept in some detail. This class is a by-product of the design for a class system for one of the projects I'm working on. The study of design patterns is actually pretty interesting. Object-Oriented Analysis and Design (OOA and OOD) should be rewarding topics to work on (both intellectually and financially). And it's a chance to show people how much more elegant that pattern could be implemented if they'd just use Perl...