NAME

BoutrosLab::TSVStream::IO::Role::Fixed

SYNOPSIS

# in a Moose class definition...
use MooseX::ClassAttribute

class_has '_fields' => (
	is => 'ro',
	isa => 'ArrayRef',
	default => sub { [qw(foo bar)] }
	);

# # or, without using MooseX::ClassAttribute
# my $_fields = [ qw(foo bar) ];
# sub _fields { return $_fields }

with 'BoutrosLab::TSVStream::IO::Role::Fixed';

has 'foo' => ( ... );
has 'bar' => ( ... );
...

DESCRIPTION

This role provides methods to create a file/iostream reader/writer for a class, using a stream of lines with tab separated fields for each record, converting to/from an object of the class. Usually, the stream will start with an initial line that has the field names as a tab separated record.

This role is also provided a BUILDARGS wrapper that alows the constructor to be given one element pair in the parameter list: (field_values=>[val1,val2,...]) instead of providing each field explicitly by name as (fld1=>val1, fld2=>val2, ...). In such a case, the values in the field_values array must be in the same order as they are listed in the _fields class attribute.

AUTHOR

John Macdonald - Boutros Lab

ACKNOWLEDGEMENTS

Paul Boutros, Phd, PI - Boutros Lab

The Ontario Institute for Cancer Research