NAME

Geo::TigerLine::Record::Parser - Parsing superclass for TIGER/Line records.

SYNOPSIS

package Geo::TigerLine::Record::23;
use base qw(Geo::TigerLine::Record::Parser);

@records = __PACKAGE__->parse_file($fh);
__PACKAGE__->parse_file($fh, \&callback);

$record = __PACKAGE__->parse($row);

DESCRIPTION

Parses raw TIGER/Line data into Geo::TigerLine::Record objects. This is intended to be used as a superclass of Geo::TigerLine::Record objects and not used directly.

You shouldn't be here.

Methods

parse_file
@records = __PACKAGE__->parse_file($fh);
__PACKAGE__->parse_file($fh, \&callback);

Parses a given filehandle as a TIGER/Line data file. The data definition is taken from __PACKAGE__->Pack_Tmpl, __PACKAGE__->Dict and __PACKAGE__->Fields. Returns an array of objects of type __PACKAGE__.

&callback will be called for each record and given a record object and its position in the file (ie. 1 for the first, 2 for the second, etc...). A sample callback...

sub callback {
    my($record, $pos) = @_;

    printf "Record #$pos is %s\n", $record->tlid;
}

If a &callback is given, a list of records will NOT be returned. It is assumed you'll be taking care of arrangements to store the records in your callback and @records can eat up huge amounds of memory for a typical TIGER/Line data file.

parse
$record = __PACKAGE__->parse($line);

Parses a single record of TIGER/Line data.

AUTHOR

Michael G Schwern <schwern@pobox.com>

SEE ALSO

Geo::TigerLine