• About: I blog about Perl. I work for Bank of America. I own Double Cluepon Software.
  • Commented on Managing Boilerplate with Import::Base
    I added a bunch of new tests specifically for warnings, but I can't seem to reproduce your issue. Could you open a ticket on the Import::Base issue tracker and include enough information to reproduce it? Your note about $Import::Base::IMPORT_MODULES seems...
  • Commented on Managing Boilerplate with Import::Base
    Thanks for the bug report. The reason nobody has seen that is probably because the IMPORT_* API is relatively new. Most of my existing uses of Import::Base override the modules() method. The static IMPORT_* stuff was added to let me...
  • 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.

Subscribe to feed Recent Actions from preaction

  • 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

  • Loops commented on Managing Boilerplate with Import::Base

    Hi, great post!.

    For whatever reason I get a "used only once" error for both Import::Base::IMPORT_MODULES and Import::Base::IMPORT_MODULES.

    Can add lines to the top of My::Base like this:

    $Import::Base::IMPORT_BUNDLES if 0;
    $Import::Base::IMPORT_MODULES if 0;

    But fixing it in Import::Base would be better. I'm just wondering why nobody else has seen these warnings? Anyway, I added the grep clause to the following line in Import::Base to deal with it:

    for my $pkg ( grep !/^Import::Base$/, reverse @{ mro::ge…

  • Jay Allen commented on Managing Boilerplate with Import::Base

    @preaction I'm seeing the same thing. If I do a syntax check on a module that uses my custom base module, the warnings are generated. The same is not true if I check syntax on the base module itself.

    I'm a bit busy at the moment with a project but I'll see what I can do to debug it, write a test case and send you a patch.

  • Jay Allen commented on Managing Boilerplate with Import::Base
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.