• About: I blog about Perl. I work for Bank of America. I own Double Cluepon Software.
  • Commented on Managing Boilerplate with Import::Base
    Could you give an example? As far as I know, everything in the bundle is scoped lexically, so it only affects my project, not other projects using my project. Other projects are allowed to use the included base bundles, sure,...
  • Posted Managing Boilerplate with Import::Base to preaction

    Boilerplate is everything I hate about programming:

    • Doing the same thing more than once
    • Leaving clutter in every file
    • Making it harder to change things in the future
    • Eventually blindly copying without understanding (cargo-cult programming)


  • Commented on A most amusing annoyance
    perl -MO=Deparse -E 'sub x { say "y"}; my $x = 'x'; $x->();' sub x { use feature 'current_sub', 'evalbytes', 'fc', 'say', 'state', 'switch', 'unicode_strings', 'unicode_eval'; say 'y'; } use feature 'current_sub', 'evalbytes', 'fc', 'say', 'state', 'switch', 'unicode_strings', 'unicode_eval'; my...
  • Commented on Test::More has lots of crazy new development that's breaking my modules
    I want to get notification if a prereq of my module, any prereq, changes in an incompatible way. But I don't think that should affect the apparent stability of my module. With metacpan emphasizing test results in their sidebar, I...
  • Commented on Understanding Behavior Driven Development
    I agree absolutely that programmers need to think about the stakeholders first and foremost. I've been trying to like BDD, but the APIs I've seen are just wretched. One BDD framework has a function called "it()", which takes everything I...
  • Commented on Between Learning and Doing
    If we intend to release the server app (if people want LAN play, or if we want to spread out game hosting a la TF2), that is the present plan. I only learned about PDK 8 days ago, though I've...
  • Commented on Between Learning and Doing
    Yeah. Unfortunately, there are also some counter-examples: If I hadn't decided to forego YUI or ExtJS and learn one of Angular, Ember, or Knockout (I chose Angular), the web project would've taken far longer despite my experience with both and...
  • Posted Between Learning and Doing to preaction


    A long time ago, when I started building my first video g…

  • Commented on New developer tool:
    I'd really like to be able to subscribe to an Author. I like to see what interesting things that certain people produce, without having to know in advance what that module is (and also to keep up with what friends...
  • Commented on perlsloc - Count Perl Source Lines with Perl::Tidy
    I was on the fence about comments. This does not get rid of them, but perltidy has options to remove comments as well: --delete-block-comments --delete-side-comments (though the latter doesn't add to SLOC really). I can't seem to find the perltidy...
  • Posted perlsloc - Count Perl Source Lines with Perl::Tidy to preaction

    While spending some time putting together my own perltidyrc intimately familiar with the Perl::Tidy documentation.

    One day, …

  • Commented on Conflict Resolution: local::lib and git's Perl
    I suspect I only ran into it just now because I upgraded List::Util to take advantage of the new pairs features. Otherwise I've been chugging along just fine....
  • Commented on Conflict Resolution: local::lib and git's Perl
    I'm of two minds on the "using system Perl" thing: The perl in env is something I know is going to work with the envvars I've got, or at least is something I can fix in a pretty straightforward way...
  • Commented on Conflict Resolution: local::lib and git's Perl
    I've edited the post to make this more clear, hopefully. PERL5LIB is added to @INC before the built-in libs....
  • Posted Conflict Resolution: local::lib and git's Perl to preaction

    I ran into a frustrating problem the other day:

    $ git add -i
    /usr/bin/perl: symbol lookup error: ~/perl5/lib/perl5/x86_64-linux-thread-multi/auto/List/Util/
    undefined symbol: Perl_xs_apiversion_bootcheck
    fatal: 'add--interactive' appears to be a git comm…
  • Commented on Removing Boilerplate with Import::Into
    I had the same problem, and I kept repeating the solution, so I wrote a module: Import::Base...
  • Commented on I hate Dist::Zilla and missing Makefile.PL
    Al Newkirk set up this section in my dist.ini that solves this problem for me by copying the Makefile.PL and Build.PL from the build directory into the dist directory, which is then committed. [Run::BeforeBuild] run = rm -f LICENSE run...
  • Commented on Simplifying imports (mainly in tests)
    There's also Test::Kit for this....
  • Commented on Contribute to Perl by completing quests on Questhub
    You're a Perl startup, I think you're on-topic here!...
  • Commented on function return in scalar context
    I've been getting bitten by this quite a bit these last few weeks. But as far as I can tell, it's not an array yet (it hasn't been saved to an AV). That's why it's always weird to me when...
  • Commented on The beauty of CSV
    The context would be the request: "I requested ." The structure is rows and columns, lots of data is structured in rows and columns....
  • Commented on Data::Dumper::GUI
    There is a REPL built for Prima already: It might not be too difficult to get them talking to each other....
  • Commented on Flux: new streaming data processing framework
    This looks like something I had planned for Beam, which is a rewrite of a bunch of modules I use at Bank of America. Excellent work! I might have to see how well these can be described in Beam::Wire....
  • Commented on Once More Unto The Breach
    Best of luck, sir! I think with this and the "dots" pragma, we're getting closer and closer to Perl 6....
  • Commented on JQuery and Moose
    jQuery certainly isn't a different kind of JavaScript OO, it's just a library that presents a set of methods and functions. What Java considers a package, Perl considers a directory on the filesystem (CPAN considers it a "Distribution"). What Java...
  • Posted Chicago.PM New Website! New Meetup URL! New Presentations Project! to preaction

    Lots of news for the Chicago.PM group! We've got a new Chicago.PM website, powered by Github, up at The website is completely editable via Github using the

  • Commented on Augment and Inner: Haters Gotta Hate
    In your second example, you could also be performing checks on the incoming arguments and the return value, making it into a Perl implementation of interfaces....
  • Posted Chicago.PM - Beyond grep - Expanding the Programmer Toolset to preaction

    Last week, Andy Lester (author of Land the Tech Job You Love) came to talk about tools to help programmers work more efficiently and the 2.0 release of his Ack search tool.

  • Commented on mozilla:ldap error
    This really isn't a good place for support questions like this. Try: * #perl * #perl-help * * Your local Perl Mongers mailing list, from If all of those fail, perhaps, but that also is...
  • Posted I Bless You in the Name of the Stringified Object to preaction

    A co-worker came to me today with a curious error message:

    use DateTime;
    my $date = DateTime->new( year => 2013, month => 4, day => 15 );
    print $date->today;'

    This code gives the error…

Subscribe to feed Recent Actions from preaction

  • CPAN Testers commented on Test::More has lots of crazy new development that's breaking my modules

    Firstly. @preaction CPANTS != CPAN Testers. They are two very different projects.

    Secondly, this is a conversation that has cropped up before, and I'm still in two minds about it. Short answer: I tend to side with brian. The tester platform shouldn't be doing any testing with the trial/development releases of pre-requisities, unless the tester is going to manually filter the results and send to the pre-requisite author if appropriate. I do understand Ether's perspective too, and there is merit in h…

  • exodist7 commented on Test::More has lots of crazy new development that's breaking my modules

    As the person making the Test::More changes, I have to agree with this idea:

    Failures due to alpha versions of Test::More should not be red marks against OTHER modules that in no way took action to cause the problem.

    If I had known they did show up there I probably would have been reluctant to release these alphas. The alphas are valuable and help me find a lot of issues... but I don't want other people to be dinged from them. I myself judge modules based on the pass/fail ratio in cpan testers.

    At the very least these should be unknown, not fail (in metacpan/cpan dis…

  • Olivier Mengué (dolmen) commented on A most amusing annoyance

    Using Perl one-liners from a Unix shell requires that you master two programming languages: Perl and your shell. Quoting is a basic feature of shell programming that you must understand if you want to avoid surprises with one-liners.

    If your shell code sends corrupted perl source, don't expect perl to guess your mistake.

  • Toby Inkster commented on A most amusing annoyance

    In most (all?) Unix shells, a parameter can be partly quoted. For example:

    echo 'foo'bar'baz'

    will print out "foobarbaz". It is this feature that allows parameters like --foo="bar baz" to work, so it's a valuable feature.

    Anyway, with your command, perl sees this:

    sub x { say "y"}; my $x = x; $x->();

    And of course, say returns 1 if it is successful. So the behaviour you see is not really surprising.

  • lichtkind commented on A most amusing annoyance

    thank you that was helpful

Subscribe to feed Responses to Comments from preaction

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.