Shutting down the Perl Community AdServer

Unfortunately not many people host the code any more, and almost no one from those who might benefit from promoting their stuff there have ever sent me requests to include theirs ads. Therefore I am going to shut down the Perl Community Adserver which was hosted at two URLs: and

I went over the logfile and sent e-mail to every person I could identify who still has the code on their web site.

If you have ever included the adserver on your pages and I have not sent you an e-mail, then please take this as my gratitude that you did host it. I think it served the Perl community a bit.

As I am going to shut it down soon, please, remove the embedded JavaScript from your pages.

Next Sydney PM - 11th November

Posting on brought new faces to our last Sydney PM, so heres details on our next event. Please join us if you are in Sydney Australia!

Hi All

Catalyst IT have offered to host us this month, so I went ahead and booked their board room. Thanks to Andrew Boag for setting the wheels in motion.

What: Sydney Perl Mongers
Date: Tuesday, 11th November 2014
Time: 6-9:30pm
Where: Catalyst IT, 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 SiteSuite and others. A contact mobile number will be posted later on for stragglers.

I will give a talk on HTML::FormFu. We also need you to give a talk!

Catalyst IT will hopefully give us a talk on how Perl is used in their company to provide value to their clients. I understand they do a lot with the Koha library mangement software.

Here are some ideas:

Reporting mismatched delimiters

[ This is cross-posted by invitation, from its home on the Ocean of Awareness blog. ]

In many contexts, programs need to identify non-overlapping pieces of a text. One very direct way to do this is to use a pair of delimiters. One delimiter of the pair marks the start and the other marks the end. Delimiters can take many forms: Quote marks, parentheses, curly braces, square brackets, XML tags, and HTML tags are all delimiters in this sense.

Mismatching delimiters is easy to do. Traditional parsers are often poor at reporting these errors: hopeless after the first mismatch, and for that matter none too precise about the first one. This post outlines a scaleable method for the accurate reporting of mismatched delimiters. I will illustrate the method with a simple but useable tool -- a utility which reports mismatched brackets.

PPI 1.219_001 - please test - breaking ->prototype changes and parse improvements

I took some time today to prepare a number of pull requests by MOREGAN for release, and the tarball for 1.219_001 is now on CPAN. Please test it and let me know if you run into problems with your module. Most of the changes simply improve parsing, but the ->prototype changes might break things if you relied on the previously broken behavior.

If no problems crop up, this will be released as 1.220 on tuesday, 2014-11-11.

I am not picky about which way it is sent to me, but feedback is best provided here: Github Issue #92

The changes in this release are:


  • incompatible behavior fixes on PPI::Statement::Sub->prototype
  • improved parsing of various syntax elements
  • code quality improvements

Rstats 0.01 development release

 Recently I am creating Rstats module.

Rstats Repository

R language is the language for statistics. This project is that You can use R language feature from Perl.

You can write code in the following as same as R language.

  use Rstats;
  # Vector
  my $v1 = c(1, 2, 3);
  my $v2 = c(3, 4, 5);
  my $v3 = $v1 + v2;
  print $v3;
  # Sequence m:n
  my $v1 = ve("1:3");

  # Matrix
  my $m1 = matrix(ve("1:12"), 4, 3);
  # Array
  my $a1 = array(ve("1:24"), c(4, 3, 2));

  # Complex
  my $z1 = 1 + 2 * i;
  my $z2 = 3 + 4 * i;
  my $z3 = $z1 * $z2;
  # Special value
  my $true = TRUE;
  my $false = FALSE;
  my $na = NA;
  my $nan = NaN;
  my $inf = Inf;
  my $null = NULL;
  # all methods is called from r
  my $x1 = r->sum(c(1, 2, 3));

Rstats is development release. API interface will be changed without warnings.

Veure Update: Missions

Just a quick update for those who are following the progress of Veure. Here's the current character stats page.

That's just a hint of some of what's new.

Perl6 Pi and continued fractions

I was looking through the code of the Rakudo implementation of Perl6 where I noticed that it defines pi as my constant pi = 3.14159_26535_89793_238e0; ( with an alias my constant π := pi; )
I immediately remembered that for a subset of fractional numbers Perl6 has a type that stores them without the loss of precision that generally accompanies floating point math. That type is of course the Rat (and FatRat) type. So of course I type pi.Rat into the REPL, it then prints 3.141593 which is obviously nowhere near as precise as the result of just typing pi into the REPL 3.14159265358979.
I wanted to see the numerator and denominator values that Perl chose to use so I typed pi.Rat.perl and got <355/113>, which is nowhere near as precise as the Rat type is capable of handling. That was just the entrance to the rabbit hole.

HTML::FormFu talk for Sydney PM

I am in the process of authoring a talk for Sydney PM as an intro to HTML::FormFu (via Catalyst). The draft of which follows, to which I would welcome feedback and suggestions.


Efficient web forms.

So you can leave at 5pm each day.

Web frameworks like Catalyst, Mojolicious & Dancer take care of repetitive things in web app development such as:

  • Connecting your code to an environment (mod_perl1/2, cgi, fast_cgi, nginx_perl etc. ok * Plack does a lot of this)
  • Mapping uri requests to code
  • Authentication
  • Authorization
  • Sessions
  • Connecting to databases & ORM's
  • Serialization/Deserialization (JSON, XML etc)
  • Templating (built on TT, Alloy etc)
  • Logging/Debugging levels
  • SiteMaps, Caching, Browser detection
  • Code Bootstrappers

Whats missing is form generation and validation.

It's very rare not to have form's in any software - business applications have lots of them.

They are very boring and repetitive, prone to mistakes and bugs as a result.

Data types are frequenly the same things: names, addresses, emails, phone numbers, etc.

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 run by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.