NAME
Algorithm::Accounting - Generate accounting statistic
for
general logs
SYNOPSIS
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 )
;
$acc
->append_data(
$data
);
# Generate report to STDOUT
$acc
->report;
# 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
$acc
->
reset
;
DESCRIPTION
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
Copyright 2004 by Kang-min Liu <gugod@gugod.org>.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See <http://www.perl.com/perl/misc/Artistic.html>