- Unicode regexes in Perl (speakerdeck.com)
- Fractal diamond-square terrain generation (blogs.perl.org)
- Code evolution vs. intelligent design (blogs.perl.org)
- Interview w/Jeff Thalhammer on Perl::Critic and Pinto (perlmaven.com)
- Interview w/Schwern about testing & Git (perlmaven.com)
- Carl Masak teaching a Perl 5/6 course in IRC (strangelyconsistent.org)
- How to transform a Perl array with map (perl5maven.com)
- Diagnosing module problems in Heroku (blogs.perl.org)
- Perl5 census Japan 2013 (blogs.perl.org)
- Keeping an eye on request duration (blogs.perl.org)
- How to be agile w/o testing; plus, “what is a bug?” (blogs.perl.org)
- Tomorrow I spend the day to put out ack 2.0, as well as get beyondgrep.com up. If you’d like to help, ping me or @hoelzro
- Advice for refactoring old legacy Perl code (reddit.com)
- Perl Kelp is another new web framework (naturalist.github.io)
- Jeff Thalhammer starts digging into Pinto/Stratopan (blogs.perl.org)
- PerlTricks.com is full of hints & tips (blogs.perl.org)
- mod_perl 2.08 is released (blogs.perl.org)
- Best practices for modularity in Perl (perl-blog.berghold.net)
- Learning Perl challenge: Removing intermediate directories (learning-perl.com)
- ack 2.0 has been released (perlbuzz.com)
- Perl Tutorial in 10 languages (blogs.perl.org)
- What RJBS did at the 2013 QA hackathon (rjbs.manxome.org)
- Factoring integers in Perl (blogs.perl.org)
- ack 2.03_01 has been released to CPAN only. Beta release for performance improvements. (search.cpan.org)
- Current best practices for toolchain & modules (dagolden.com)
- Parenthesize your function calls (neilb.org)
- mvr is like mv, but smarter and in Perl (hashbang.ca)
- Video: Getting started with Perl Dancer (perlmaven.com)
- An introduction to variable scoping (perl5maven.com)
ack 2.0 has been released. ack is a grep-like search tool that has been optimized for searching large heterogeneous trees of source code.
ack has been around since 2005. Since then it has become very popular and is packaged by all the major Linux distributions. It is cross-platform and pure Perl, so will run on Windows easily. See the “Why ack?” page for the top ten reasons, and dozens of testimonials.
ack 2.0 has many changes from 1.x, but here are four big differences and features that long-time ack 1.x users should be aware of.
- By default all text files are searched, not just files with types that ack recognizes. If you prefer the old ack 1.x behavior of only searching files that ack recognizes, you can use the -k/--known-types option.
- There is a much more flexible type identification system available. You can specify a file type based on extension (.rb for Ruby), filename (Rakefile is a Ruby file), first line matching a regex (Matching /#!.+ruby/ is a Ruby file) or regex match on the filename itself.
- Greater support for ackrc files. You can have a system-wide ackrc at /etc/ackrc, a user-specific ackrc in ~/.ackrc, and ackrc files local to your projects.
- The -x argument tells ack to read the list of files to search from stdin, much like xargs. This lets you do things like git ls | ack -x foo and ack will search every file in the git repository, and only those files that appear in the repository.
On the horizon, we see creating a framework that will let authors create ack plugins in Perl to allow flexibility. You might create a plugin that allows searching through zip files, or reading text from an Excel spreadsheet, or a web page.
ack has always thrived on numerous contributions from the ack community, but I especially want to single out Rob Hoelz for his work over the past year or two. If it were not for Rob, ack 2.0 might never have seen the light of day, and for that I am grateful.
A final note: In the past, ack’s home page was betterthangrep.com. With the release of ack 2.0, I’ve changed to beyondgrep.com. “Beyond” feels less adversarial than “better than”, and implies moving forward as well as upward. beyondgrep.com also includes a page of other tools that go beyond the capabilities of grep when searching source code.
For long time ack users, I hope you enjoy ack 2.0 and that it makes your programming life easier and more enjoyable. If you’ve never used ack, give it a try.
- When is a hash the same? (modernperlbooks.com)
- Holy crap, Devel::NYTProf v5 has a flame graph (blog.timbunce.org)
- Help get Test::Builder 1.5 out the door by fixing broken Test modules (github.com)
- YAPC::NA 2013 schedule has been announced (yapcna.org)
- Why Jeff Atwood’s latest project, Discourse, is in Ruby (codinghorror.com)
- Cool new features at rt.cpan.org (blog.bestpractical.com)
- Jeff Thalhammer is looking for funding for Stratopan (blogs.perl.org)
- On the fat comma and clarity (modernperlbooks.com)
- Notes from the Perl QA hackathon (blogs.perl.org)
- Perl is not just a profession or skill, but a home (blogs.perl.org)
- Build a static blog with Blio and GitHub (perl5maven.com)
- ack 2.00 beta 07 has been released to CPAN (search.cpan.org) (in the next hour or so)
- Three revelations about DateTime (richardharr.is)
- Citrus Perl is a binary distro for GUI app developers (citrusperl.com)
- On the perils of AUTOLOAD (blogs.perl.org)
- UNIVERSAL::new lets you do sneakiness on the command line (dagolden.com)
- Fat core or thin core Perl? (blogs.perl.org)
- On the importance of variable naming (askbjoernhansen.com)
- Debunking Facebook forwarded myths with Perl (perlbuzz.com)
- Don’t open files the old-fashioned way (perl5maven.com)
- Jeff Thalhammer video interview about Pinto, your own private CPAN (twit.tv)
- Doug Bell on dependency injection (blogs.perl.org)
- Call for submissions for YAPC::NA ends Monday (blog.yapcna.org)
- Tie::Array::CSV makes CSV manipulation easy (blogs.perl.org)
- Allison Randal: Why I still love Perl (allisonrandal.com)
- Is the module list useful? No. (blogs.perl.org)
- Perl module administration in the modern era (speakerdeck.com)
- svn.perl.org is shutting down. (log.perl.org)
- I made a module! (geekblog.oneandoneis2.org)