The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


App::Unliner - Untangle your unix pipeline one-liners


Unliner is a scripting language and toolset for refactoring and developing unix one-liners.

Note: This page is a high-level overview of unliner. For an introduction and manual, see App::Unliner::Intro.

The simplest way to install unliner is with cpanminus:

    curl -sL | sudo perl - App::Unliner

Here is an unliner script to display response code tallies from standard apache logs. Save it in the file reportgen:

    #!/usr/bin/env unliner

    def main {
        extract-response-codes $@ | tally

    def extract-response-codes : perl -n {
        ## HTTP response code is 2nd last field
        print "$1\n" if /(\d\d\d) \S+$/;

    def tally {
        sort | uniq -c | sort -rn

Now make reportgen executable:

    $ chmod a+x reportgen

Now you can run reportgen like a normal program:

    $ ./reportgen /var/www/log/access.log
      43628 200
       1911 301
        201 404
          6 500


For a more detailed description of unliner, see the introduction: App::Unliner::Intro.

Unliner github repo


Doug Hoyte, <>


Copyright 2012-2014 Doug Hoyte.

This module is licensed under the same terms as perl itself.