CPAN is 20!

Perl hackers have now, as of today the 16th August 2015, been uploading Perl modules onto CPAN via PAUSE for 20 years. Andreas König, who did that first upload, is still releasing to CPAN, and as I write this his most recent upload is the same module that was first released to CPAN.

This post is a brief summary of CPAN's history.

Happy CPAN Day!

Can you believe CPAN has been around for 20 years today? Two decades is a long time! Yet, I cannot imagine my workday without it.

My contributions to the CPAN Day celebration:

Helios 2.83 is a minor release of the Helios distributed job processing framework. It contains official SQLite support for the first time, better schema DDL for Oracle databases, and some cleanup of some files with mixed-format line endings.

Helios::Logger::HiRes 1.00 is the first stable release of a plugin module
providing enhanced logging features to the Helios framework, including
sub-second timestamp precision (provided by Perl's Time::HiRes) and a
command line log searching tool.

Thank you to everyone who contributes to CPAN, both package contributors and those that maintain CPAN itself. Happy CPAN Day everyone!

The newly-released Regexp::Assemble V 0.36

I'm now co-maint of Regexp::Assemble. V 0.36 has been uploaded to CPAN.


This is a Japanese summary of Grants Committee Charter, How to write a proposal and Grant Benefits.

YAPC::Asiaが目の前に迫ってきました。日本のPerl使いの皆様向けにThe Perl Foundation内のGrants Committeeの活動を紹介します。

以前Grants Committee委員の牧から案内がありましたように、Grants CommitteeはPerlの開発に貢献する個人に1万ドルを上限として助成金の交付を行っています。もちろん日本の皆さんも対象で、最近はmoznion氏のPerl::Lintが採択されました。以下に私たちの活動理念と助成金の応募方法を記します。少し長いですがどうぞお付き合いを。

Grants Committeeの紹介

Grants Committeeは米国非営利法人、Perl Foundation内の最大勢力を占める委員会です。

Grantは日本語に翻訳しにくいのですが、助成金委員会とでも申しましょうか。オープンソースの活動は個人が自分の時間を使って無報酬で行われることが多いものの、人間は霞を食べて生きるわけにはいかないため、Perlのプロジェクトを通してPerlの成長に貢献してくださる方にGrants Committeeが助成金を出しています。

委員長は私、野崎が務めています。委員はコミュニティの代表を世界各地から集める方針を取っており、アジア・太平洋地域からは牧大輔とKaren Pauleyが選出されています。その他北米4人、欧州の4人の委員に加え、アジア・北米・欧州からGrant Managerという役職に1名ずつついており計14人の所帯です。



  • 提案の送付(フォーム)。このようなプロジェクトををするのでこれだけの助成をされたい、という内容を送っていただきます。メールアドレスなど個人情報を除き、内容は公開されます。
  • 奇数月の中旬にパブリックコメントを募集し、委員による投票が行われます。
  • 賛成多数で採択。提案に沿って実行していただきます。なお月一度の進捗報告が求められます。
  • 計画達成後、現金が支払われます。



  • 専属マネージャーが割り当てられ、進捗管理とTPF間の仲介をしてくれます。
  • TPFお墨付きのプロジェクトになり、世界中から注目が得られます。




  • 提案の作成、質問への返答
  • 進捗報告
  • 支払い手続きなど事務的なやりとり











tpf-grants-secretary at perl-foundation.orgへどうぞ。

Converting glob patterns to regular expressions

Let's say you have a glob pattern with shell-style wildcards from a config file or user input, where ? matches any character and * matches any string (0 or more characters). You want to convert it to a regex, maybe because you just want to match it (and Perl already supports regexes) or because you want to embed it as part of a bigger regex.

You might start with a naive replacement:

s/\?/./g;   # ? -> .
s/\*/.*/g;  # * -> .*

Unfortunately this is broken: It leaves all other characters untouched, including those that have a special meaning in regexes, such as (, +, |, etc.

Let's revise it:

    $1 eq '?' ? '.' :
    $1 eq '*' ? '.*' :
    '\\' . $1

Now we match and replace every non-word character. If it's ? or *, we turn it into its regex equivalent; otherwise we backslash-escape it just like quotemeta would do.

Raise hell, or bugs, on CPAN Day!

If you've got one or more distributions on CPAN, then on CPAN Day you could go through them and see if there are any ideas you've had which aren't listed in the issue tracker (typically RT or github issues).

If you don't have any distributions on CPAN, then you could go through the modules that you regularly use and see if there are any issues you could raise.

I'll expand a bit on what I mean, and why it might be a good use of your time.

Seeking helpers for Net::DHCP

Are you sitting at home thinking "I've got all this free time, I really want to make use of it playing around with bitstrings using pack and unpack" ?

Your search is over! I need your help!

For some time now I have been chipping away at enhancements for Net::DHCP. Recently I have begun adding tests using packet captures from the real world. Naturally this has created a laundry list of possible enhancements including DHCP options which need special attention to make sense of.

That and the tangled web of quirky clients which require dhcp options to be in certain (non-numeric) order - for no logical reason.

I have a TODO list which is naturally just a list of ideas which some keen person with tie on their hands might like to help me with, check it out at:

Please fork and submit PR's!

Sydney Perl Mongers August 2015

It's hard to believe its August already! Catalyst-IT have offered to host us this month, so I went ahead and booked their board room.

What: Sydney PM
Date: Tuesday, 18th August 2015
Time: 6-9:30pm
Where: Catalyst, Suite 501-504, 89 York St Sydney NSW

The building locks it's doors at 6pm, so one of their staff will let us in. The same as Broadbean, SiteSuite and others. For stragglers, a contact mobile number will be posted on the SydneyPM email list the day before.

Please like our FB page and Join our FB Event

About is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is hosted by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.