NAME

Tie::FieldVals::Join - an array tie for two files of FieldVals data

VERSION

This describes version 0.6203 of Tie::FieldVals::Join.

SYNOPSIS

    use Tie::FieldVals;
    use Tie::FieldVals::Row;
    use Tie::FieldVals::Join;
    use Tie::FieldVals::Row::Join;

    my @records;

    my $recs_obj = tie @records, 'Tie::FieldVals::Join',
	datafile=>$datafile, joinfile=>$joinfile,
	join_field=>$fieldname, selection=>{$key=>$value};

DESCRIPTION

This is a Tie object to map the records in two FieldVals data files into an array.

This depends on the Tie::FieldVals::Row::Join module.

OBJECT METHODS

field_names

Get the field names of this data.

my @field_names = $recs_obj->field_names();

Tie-Array METHODS

TIEARRAY

Create a new instance of the object as tied to an array. This is a read-only array.

    tie %person, 'Tie::FieldVals::Join', datafile=>$datafile,
	joinfile=>$joinfile, join_field=>$fieldname,
	selection=>{$key=>$value...}, match_any=>$val2;

    tie %person, 'Tie::FieldVals::Join', datafile=>$datafile,
	joinfile=>$joinfile, join_field=>$fieldname,
	cache_size=>1000, memory=>0;

    tie %person, 'Tie::FieldVals::Join', datafile=>$datafile,
	joinfile=>$joinfile, join_field=>$fieldname,
	selection=>{$key=>$value...}, match_any=>$val2,
	cache_all=>1;

The datafile option is the first file, the joinfile is the second. The join_field is the field which the two files have in common, upon which they are joining. Only rows where both files have the same value for the join_field will be put in this join.

Note that is a very naieve join algorithm: it expects the datafile file to have unique values for the join_field, and the joinfile file to have multiple values for the join_field -- if the order is the other way around, the results will be messed up.

The join array is read-only.

See Tie::FieldVals and Tie::FieldVals::Selection for explanations of the other arguments.

FETCH

Get a row from the array.

$val = $array[$ind];

Returns a reference to a Tie::FieldVals::Row::Join hash, or undef.

STORE

Add a value to the array. Does nothing -- this is read-only.

FETCHSIZE

Get the size of the array.

STORESIZE

Does nothing.

EXISTS

exists $array[$ind];

DELETE

delete $array[$ind];

Does nothing -- this array is read-only.

CLEAR

@array = ();

Does nothing -- this array is read-only.

UNTIE

untie @array;

Untie the array.

PRIVATE METHODS

For developer reference only.

debug

Set debugging on.

whowasi

For debugging: say who called this

REQUIRES

Test::More
Carp
Data::Dumper
Tie::Array
Fcntl
Tie::FieldVals
Tie::FieldVals::Row
Tie::FieldVals::Row::Join
Tie::FieldVals::Select

SEE ALSO

perl(1). Tie::FieldVals Tie::FieldVals::Row Tie::FieldVals::Select Tie::FieldVals::Row::Join

BUGS

Please report any bugs or feature requests to the author.

AUTHOR

Kathryn Andersen (RUBYKAT)
perlkat AT katspace dot com
http://www.katspace.com

COPYRIGHT AND LICENCE

Copyright (c) 2004 by Kathryn Andersen

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