NAME
TableData::Object - Manipulate table data
VERSION
This document describes version 0.01 of TableData::Object (from Perl distribution TableData-Object), released on 2014-08-16.
SYNOPSIS
use TableData::Object qw(table);
$td = TableData::Object->new([1, 2, 3, 4]); # from array of scalars
$td = TableData::Object->new([[1,2],[2,3]]); # from array of arrays of scalars
$td = TableData::Object->new([{name=>"Andi"}, {name=>"Budi", gender=>"m"}]);
# from array of hashes of scalars
$td = TableData::Object->new(4); # die, can only accept in the above form
# shortcut to construct object
$td = table(...);
# for the examples below, this object is assumed
$td = TableData::Object->new([["Andi",3000], ["Budi",4000], ["Cinta",2500]]);
# retrieve names of columns
$cols = $td->columns; # -> ["column0", "column1"]
# set names of columns
$td->columns(["name", "salary"]);
# retrieve a single column
$col = $td->column("salary"); # -> [3000,4000,2500]
$col = $td->column("foo"); # dies, unknown column
# retrieve rows data, each row as arrays
$rows = $td->rows_as_array; # -> (["Andi",3000], ["Budi",4000], ["Cinta",2500])
# retrieve rows data, each row as hash
$rows = $td->rows_as_hash; # -> ({name=>"Andi",salary=>3000}, {name=>"Budi",salary=>4000}, {name=>"Cinta",salary=>2500})
# retrieve a specific row
$row = $td->row_as_array(2); # -> ["Cinta",2500]
$row = $td->row_as_hash(1); # -> [{name=>"Budi",salary=>4000}]
# convert to specific forms
$data = $td->as_aoaos;
$data = $td->as_aohos;
# XXX add row
# XXX add column
# XXX delete row(s)
# XXX delete column(s)
# XXX rename column
# XXX reorder column
DESCRIPTION
This module provides a class to manipulate table data. Table data can be in the form of array of scalars (aos), array of arrays of scalars (aoaos), or array of hashes of scalars (aohos). There are methods to get/set the columns/rows, convert to the other forms, etc.
Aos data is assumed to be a single-column table with column named data (but this can be renamed). Aoaos data is assumed to have columns named column0, column1, and so on (but this can be changed). Aohos data is assumed to have columns according to the hash keys (sorted alphabetically) and column names cannot be changed.
FUNCTIONS
table($data[, $spec]) => obj
Exportable. Shortcut for constructor.
METHODS
new($data[, $spec]) => obj
Constructor.
$spec is optional and should be table specification hash according TableDef.
columns([ $cols ]) => array
Get or set columns.
column_data($name) => array
Get a single column data.
rows_as_array => array of array of scalar
rows_as_hash => array of hash of scalar
row_as_array($index) => array of scalar
row_as_hash($index) => hash of scalar
as_aoaos() => array of array of scalar
as_aohos() => array of hash of scalar
TODO
SEE ALSO
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/TableData-Object.
SOURCE
Source repository is at https://github.com/sharyanto/perl-TableData-Object.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=TableData-Object
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
AUTHOR
Steven Haryanto <stevenharyanto@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 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.