View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
劉康民 > Algorithm-Accounting-0.08 > Algorithm::Accounting



Annotate this POD

View/Report Bugs
Module Version: 0.08   Source  


  Algorithm::Accounting - Generate accounting statistic for general logs


  my $fields = [qw/id author file date/];
  my $groups = [[qw(author file)], [qw(author date)]];
  my $data = [
        [1, 'alice', '/foo.txt', '2004-05-01' ],
        [2, 'bob',   '/foo.txt', '2004-05-03' ],
        [3, 'alice', '/foo.txt', '2004-05-04' ],
        [4, 'john ', '/foo.txt', '2004-05-04' ],
        [5, 'john ', [qw(/foo.txt /bar.txt], '2004-05-04' ],

  # give the object information
  my $acc = Algorithm::Accounting->new(fields => $fields,
                                       field_groups => $groups );


  # Generate report to STDOUT

  # Get result
  my $result = $acc->result;

  # Get result of a specific field.
  my $author_accounting = $acc->result('author');

  # Reset current result so we can restart


Algorithm::Accounting provide simple aggregation method to make log accounting easier. It accepts data in rows, each rows can have many fields, and each field is a scalar or a list(arrayref).

The basic usage is you walk through all your logs, and use append_data() to insert each rows, (you'll have to split the line into fields), and then call result() to retrieve the result, or report() to immediatly see simple result.

You may specify a filed_groups parameter (arrayref of arrayref), and Algorithm::Accounting will account these fields in groups.

Notice you'll have to give a list fileds first, the append_data() depends on the number of fields to work properly.


Copyright 2004 by Kang-min Liu <>.

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

See <>

syntax highlighting: