The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

ETL::Pipeline::Output::Storage::Hash - Holds the current record in a hash

SYNOPSIS

  with 'ETL::Pipeline::Output::Storage::Hash';

DESCRIPTION

This role stores the current record in a Perl hash. "write_record" in ETL::Pipeline::Output copies the information out of the hash and into permanent storage.

"process" in ETL::Pipeline wipes out the hash at the start of every input record. ETL::Pipeline::Output::Storage::Hash creates an entirely new copy. That way "write_record" in ETL::Pipeline::Output can safely store the hash reference.

METHODS & ATTRIBUTES

default_fields

This subroutine returns a hash of default fields. "new_record" initializes every new record with these values. The consuming class must define the default_fields method.

NOTE: Do not return a hash reference. Return the hash. default_fields is called in list context.

current

current is a hash reference of the current record. Fields are added using the "set" method.

field_names

field_names returns a list of the current field names. It can be used for traversing the hash.

get_value

get_value returns the value of a single field. Pass the field name (a.k.a. the hash key) as the only parameter.

this_record

this_record returns the complete record as a hash instead of a hash reference.

Called from "process" in ETL::Pipeline

new_record

new_record creates a new hash reference for "current". Every record begins empty. Fields are created through "set".

set

set adds a single field to the record. The parameters are a field name followed by one or more values. Multiple values are stored as a list reference.

SEE ALSO

ETL::Pipeline, ETL::Pipeline::Output, ETL::Pipeline::Output::UnitTest

AUTHOR

Robert Wohlfarth <robert.j.wohlfarth@vanderbilt.edu>

LICENSE

Copyright 2016 (c) Vanderbilt University

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