NAME
Text::BSV::BsvListReader - read BSV data from a list of strings containing the rows (without end-of-line characters), including the header row, and then turn the data into an array of field names plus one hash encapsulating each record.
SYNOPSIS
use Text::BSV::BsvListReader;
use Text::BSV::Exception;
# Create a Text::BSV::BsvListReader instance:
my $bsv_rows = $ARGV[0];
my $bsv_list_reader;
eval {
$bsv_list_reader = Text::BSV::BsvListReader->new($bsv_rows);
};
if ($EVAL_ERROR) {
say STDERR $EVAL_ERROR->get_message();
exit(1);
} # end if
# Get the field names:
my @field_names = @{ $bsv_list_reader->get_field_names() };
# Get the records:
my @records = @{ $bsv_list_reader->get_records() };
# Do something with the records.
DESCRIPTION
This module defines a class for reading BSV data from a list of strings containing the rows (without end-of-line characters), including the header row, and then turning the data into an array of field names plus one hash encapsulating each record.
For a complete specification of the BSV (Bar-Separated Values) format, see bsv_format.txt.
In addition to the class-name argument, which is passed in automatically when you use the Text::BSV::BsvListReader->new()
syntax, the constructor takes a reference to an array containing the BSV rows, including the header row, with no end-of-line characters.
The constructor returns a reference to a Text::BSV::BsvListReader object, which is implemented internally as a hash. All functionality is exposed through methods.
NOTE: This module uses the Text::BSV::Exception module for error
handling. When an error occurs during the execution of a method
(including the constructor), the method creates a new
Text::BSV::Exception object of the appropriate type and then passes
it to "die". When you call the constructor or a method documented
to throw an exception, do so within an "eval" statement and then
query $EVAL_ERROR ($@) to catch any exceptions that occurred. For
more information, see the documentation for Text::BSV::Exception.
PREREQUISITES
This module requires Perl 5 (version 5.10.1 or later), the Text::BSV::BsvParsing module, and the Text::BSV::Exception module.
METHODS
- Text::BSV::BsvListReader->new($bsv_rows);
-
This is the constructor. If the header row or the first record in the BSV data is not valid, the constructor throws an exception of type $Text::BSV::Exception::INVALID_DATA_FORMAT.
- $bsv_list_reader->get_field_names();
-
Returns a reference to an array containing the field names, preserving the order in which they appear in the BSV data.
- $bsv_list_reader->get_records();
-
Returns a reference to an array of hash references that encapsulate the BSV data records. The keys in each hash are the field names.
AUTHOR
Benjamin Fitch, <blernflerkl@yahoo.com>
COPYRIGHT AND LICENSE
Copyright 2010 by Benjamin Fitch.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.