Data::Unixish::wc - Print newline, word, and byte counts


version 1.41


In Perl:

 use Data::Unixish::List qw(dux);
 my @text = split /^/, "What do you want?\nWhat do you want me to want?\n";
 my $res = dux([wc => {words=>1, lines=>1}], @text); # => "2\t11"

In command line:

 % seq 1 100 | dux wc
 100    100    292


Steven Haryanto <>


This software is copyright (c) 2013 by Steven Haryanto.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.



None are exported by default, but they are exportable.

wc(%args) -> [status, msg, result, meta]

Behavior mimics that of the Unix wc utility. The order of the counts which is returned is always: newline, word, character, byte, maximum line length.

Arguments ('*' denotes required arguments):

  • bytes => bool (default: 0)

    Return the bytes counts.

  • chars => bool (default: 0)

    Return the character counts.

  • in => any

    Input stream (e.g. array or filehandle).

  • lines => bool (default: 0)

    Return the newline counts.

  • max_line_length => bool (default: 0)

    Return the length of the longest line.

  • out => any

    Output stream (e.g. array or filehandle).

  • words => bool (default: 0)

    Return the word counts.

Return value:

Returns an enveloped result (an array). First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.