NAME
Vote::Count::ReadBallots
VERSION 0.017
SYNOPSIS
Vote::Count::ReadBallots 'read_ballots';
my $data1 = read_ballots('t/data/data1.txt');
Description
Reads a file containing vote data. Retruns a HashRef of a Vote::Count BallotSet.
BallotSet Data Structure
ballots {
CHOCOLATE:MINTCHIP:VANILLA {
count 1,
votes [
[0] "CHOCOLATE",
[1] "MINTCHIP",
[2] "VANILLA"
]
},
},
choices {
CHOCOLATE 1,
MINTCHIP 1,
VANILLA 1
},
comment "# Optional Comment",
options {
rcv 1
}
=head1 Data File Format
# This is a comment, optional.
:CHOICES:VANILLA:CHOCOLATE:STRAWBERRY:MINTCHIP:CARAMEL:RUMRAISIN
5:VANILLA:CHOCOLATE:STRAWBERRY
RUMRAISIN
CHOICES must be defined before any vote lines. or an error will be thrown. CHOICES must only be defined once. These rules are to protect against errors in manually prepared files.
A data line may begin with a number or a choice. When there is no number the line is counted as being a single ballot. The number represents the number of ballots identical to that one; this notation will both dramatically shrink the data files and improve performance.
read_ballots
Reads a data file in the standard Vote::Count format and returns a BallotSet.
write_ballots
write_ballots( $BallotSet, $newfile);
Write out a ballotset. Useful for creating a compressed version of a raw file.
Other Formats
It is planned to add support in the future for ranged voting. JSON, XML, and YAML formats may also be provided in the future.
BUG TRACKER
https://github.com/brainbuz/Vote-Count/issues
AUTHOR
John Karr (BRAINBUZ) brainbuz@cpan.org
CONTRIBUTORS
Copyright 2019 by John Karr (BRAINBUZ) brainbuz@cpan.org.
LICENSE
This module is released under the GNU Public License Version 3. See license file for details. For more information on this license visit http://fsf.org.