Robert Rothenberg

  • Website:
  • About: I was born on the Moon but kidnapped by astronauts and raised in the suburbs of Grumman. Eventually, I drifted along the Gulf Stream to Northern Europe. Blogs about Perl, Puppet, Linux, programming, and whatever etc.
  • Posted Lexical readonly state variables with PerlX::Let to Robert Rothenberg

    I’ve released a new module PerlX::Let that adds a new “let” keyword so that you can do the following:

    let $x = 1,
         $y = "string" {
      if ( ($a->($y} - $x) > ($b->{$y} + $x) )
  • Commented on Skeleton Week: Perl plugin for collectd
    Thanks for the link, that's interesting. But collectd has a support statsd plugin, and there are several Perl modules for sending metrics to statsd....
  • Commented on Promoting Perl
    Andrew's point about API support is a good one. I'd like to add that while it's great to have "killer apps" written in Perl that are widely used, most companies won't care whether they are written in Perl. Their developers...
  • Commented on Promoting Perl
    Are you promoting Perl, or pecific projects written in Perl? These are not the same thing. Who are you promoting Perl to? 1. Software Developers? 2. Management? I don't think (1) is difficult, as long as they have a reason...
  • Posted Adding a ROADMAP section to the POD to Robert Rothenberg

    I've like to propose adding a ROADMAP section to module documentation.

    It would be a *short* summary of planned changes for future versions, noting what features would be removed or changed, or upcoming new features that will be added.

    More detailed roadmaps should be put in a sepa…

  • Posted Graphics::ColorNames changes to Robert Rothenberg

    I have been making a lot of changes to Graphics::ColorNames lately. The module has gone too long without any maintenance, and suffered from feature bloat.

    Some notable changes that are already on CPAN:

    • A switch t…
  • Commented on Type::Const released
    I would have thought something like has things => ( is => 'const', isa => BagOfWind, ); It should be fairly easy to write something automatically modifies the type and adds a coercion....
  • Commented on Type::Const released
    I've updated it in v0.3.0 so that there is a single Const type that takes an optional parameter, e.g. Const[ArrayRef[Int]] I have removed the ConstArrayRef and ConstHashref types as well....
  • Posted Type::Const released to Robert Rothenberg

    I've created an experimental Type::Tiny library called Type::Const that coerces ArrayRefs and HashRefs into constants using Const::Fast.


    When you have read-only attributes in Moo(se) classes:

  • Commented on File::Slurp is broken and wrong
    it's not particularly relevant to slurping as the handle won't be shared between threads. It doesn't matter if the filehandle is shared. Just calling binmode will lead to a segfault....
  • Commented on File::Slurp is broken and wrong
    I believe that the default encoding using by File::Slurp is because of a Perl bug with threads:
  • Posted Pod::Readme can now be used with Dist::Zilla to Robert Rothenberg

    I've recently released a new version of Pod::Readme with hooks to work with Dist::Zilla.

    I also worked with Fayland 林 so that

  • Commented on Scratching an itch - interpolable HTTP Status constants
    Actually, scratch that last reply. I misread it. Yes, you can use %hash = ( HTTP_OK() => ... ) or ${\ HTTP_I_AM_A_TEAPOT } but the code is a bit ugly. Admittedly, this module does add extra dependencies (although some like...
  • Commented on Scratching an itch - interpolable HTTP Status constants
    @bor Yes, there's a simplified way of defining HTTP constants that way discussed in But there's no compile-time checking of typos. If you type $HTTP{BSD_REQUEST}, you won't get an error and may miss a subtle bug. (Note that "BSD"...
  • Posted Scratching an itch - interpolable HTTP Status constants to Robert Rothenberg

    When working on larger web applications, I prefer to use HTTP::Status to provide human-readable constant names in the code. This is especially helpful for anything other than the common 200, 404 or 500 status codes.

    But the constants exp…

  • Posted Pod::Readme v1.0.2 released to Robert Rothenberg

    I released a new version of Pod::Readme yesterday. It's a module for "Intelligently generate a README file from POD" by using POD =begin/=end and =for commands to control what parts of a module's POD are included/excluded in the…

  • Commented on A pre-release of Pod::Readme is available on CPAN
    @leon I am in the process of changing it from Moose to Moo. As for v5.10, I prefer using some of the features of v5.10 to simplify the code. If I get enough feedback from module authors asking for support...
  • Commented on Rewriting Pod::Readme
    A pre-release has been uploaded to CPAN. See the announcement....
  • Posted A pre-release of Pod::Readme is available on CPAN to Robert Rothenberg

    Last month, I mentioned that I was rewriting Pod::Readme.

  • Commented on Test::More has lots of crazy new development that's breaking my modules
    As a module author, I also don't want to see fails for spurious reasons for my modules. But when I'm choosing a module to use, I look closely at the failures to see why they are failing before deciding not...
  • Commented on Rewriting Pod::Readme
    Thanks for the feedback. @Ether: I've thought of using Moo, but I am using traits and MooseX::Object::Pluggable to load plugin-roles. I'm unsure how to do that using Moo....
  • Posted Rewriting Pod::Readme to Robert Rothenberg

    Back in 2005, I wrote Pod::Readme. It languished a bit, and David Precious took over maintainership around 2010.

    The core idea for this is that README files contain redundant information that is already in the POD, but not everything in th…

  • Posted Transparently testing Catalyst applications for memory leaks to Robert Rothenberg

    Summary: you can use CatalystX::LeakChecker to check every request in your test suite for memory leaks.

    From my blog, here.

  • Posted Const::Exporter Released to Robert Rothenberg

    A few days ago, I released Const::Exporter to CPAN.

    Basically, it's a module that allows you to define a module with exportable constants that:

    • can be read-only scalars, arrays, or hashes (as well as the standard constant…
Subscribe to feed Recent Actions from Robert Rothenberg

  • Dean commented on Promoting Perl

    Training (and certifications) have a powerful network effect. Thats a great contribution.

  • Andrew Solomon commented on Promoting Perl

    I have a great deal of experience providing training in various forms from lectures to part-time courses and 3-day workshops. I've found that the most successful formula is to train new hires as part of the on-boarding process. is doing exactly that:

    (Note, for transparency - I run Geekuni)

  • kd commented on Promoting Perl

    Perl has a couple of major strengths [1], and some problems.

    Personally I've found that there's no normal programming activity I can't do with perl that I can't do with any other similarly positioned language. But there's not a lot of perl being taught these days, and a lot of people teaching perl don't really have the capability to do so. I've spent the last decade trying to get my programming game as disciplined as I can. I would have done it in another language, but perl is fun, and I'm a self-teaching type person with a non-typical programming background. Perl is really wel…

  • Yuki Kimoto commented on Promoting Perl

    > If you had $10,000 to promote Perl - what would you do with it?

    I open small Perl workshop in 10-20 people by Borrowing rental space Regularly.

    And We talk about Perl each others and develop Perl open source or service.

    And write blog about the meeting with some pictures.

  • KES commented on Promoting Perl

    Just a thought: Maybe we do not see often contribution in perl because projects just work. They just do not require 24/7 attention after implementation.

Subscribe to feed Responses to Comments from Robert Rothenberg

About is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.