File Coverage

blib/lib/Geo/TigerLine/Record/1.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 16 100.0


line stmt bran cond sub pod time code
1             package Geo::TigerLine::Record::1;
2              
3 1     1   913 use strict;
  1         2  
  1         30  
4              
5 1     1   774 use Carp::Assert;
  1         1156  
  1         6  
6 1         545 use base qw(Geo::TigerLine::Record::Parser Geo::TigerLine::Record::Accessor
7 1     1   158 Geo::TigerLine::Record Class::Data::Inheritable);
  1         2  
8              
9 1     1   6 use vars qw($VERSION);
  1         2  
  1         1357  
10             $VERSION = '0.02';
11              
12              
13             # Auto-generated data dictionary.
14             my %Data_Dict = (
15             'toaddl' => {
16             'len' => 11,
17             'beg' => 70,
18             'bv' => 'Yes',
19             'fieldnum' => 12,
20             'type' => 'A',
21             'description' => 'End Address, Left',
22             'end' => 80,
23             'fmt' => 'R',
24             'field' => 'toaddl'
25             },
26             'zipr' => {
27             'len' => 5,
28             'beg' => 112,
29             'bv' => 'Yes',
30             'fieldnum' => 20,
31             'type' => 'N',
32             'description' => 'ZIP Code, Right',
33             'end' => 116,
34             'fmt' => 'L',
35             'field' => 'zipr'
36             },
37             'fetype' => {
38             'len' => 4,
39             'beg' => 50,
40             'bv' => 'Yes',
41             'fieldnum' => 8,
42             'type' => 'A',
43             'description' => 'Feature Type',
44             'end' => 53,
45             'fmt' => 'L',
46             'field' => 'fetype'
47             },
48             'tractr' => {
49             'len' => 6,
50             'beg' => 177,
51             'bv' => 'Yes',
52             'fieldnum' => 38,
53             'type' => 'N',
54             'description' => 'Census Tract, 2000 Right',
55             'end' => 182,
56             'fmt' => 'L',
57             'field' => 'tractr'
58             },
59             'cousubl' => {
60             'len' => 5,
61             'beg' => 141,
62             'bv' => 'Yes',
63             'fieldnum' => 31,
64             'type' => 'N',
65             'description' => 'FIPS 55 Code (County Subdivision), 2000 Left',
66             'end' => 145,
67             'fmt' => 'L',
68             'field' => 'cousubl'
69             },
70             'toiaddr' => {
71             'len' => 1,
72             'beg' => 106,
73             'bv' => 'Yes',
74             'fieldnum' => 18,
75             'type' => 'A',
76             'description' => 'End Imputed Address Flag, Right',
77             'end' => 106,
78             'fmt' => 'L',
79             'field' => 'toiaddr'
80             },
81             'fename' => {
82             'len' => 30,
83             'beg' => 20,
84             'bv' => 'Yes',
85             'fieldnum' => 7,
86             'type' => 'A',
87             'description' => 'Feature Name',
88             'end' => 49,
89             'fmt' => 'L',
90             'field' => 'fename'
91             },
92             'frlat' => {
93             'len' => 9,
94             'beg' => 201,
95             'bv' => 'No',
96             'fieldnum' => 42,
97             'type' => 'N',
98             'description' => 'Start Latitude',
99             'end' => 209,
100             'fmt' => 'R',
101             'field' => 'frlat'
102             },
103             'friaddr' => {
104             'len' => 1,
105             'beg' => 105,
106             'bv' => 'Yes',
107             'fieldnum' => 17,
108             'type' => 'A',
109             'description' => 'Start Imputed Address Flag, Right',
110             'end' => 105,
111             'fmt' => 'L',
112             'field' => 'friaddr'
113             },
114             'submcdr' => {
115             'len' => 5,
116             'beg' => 156,
117             'bv' => 'Yes',
118             'fieldnum' => 34,
119             'type' => 'N',
120             'description' => 'FIPS 55 Code (Subbarrio), 2000 Right',
121             'end' => 160,
122             'fmt' => 'L',
123             'field' => 'submcdr'
124             },
125             'rt' => {
126             'len' => 1,
127             'beg' => 1,
128             'bv' => 'No',
129             'fieldnum' => 1,
130             'type' => 'A',
131             'description' => 'Record Type',
132             'end' => 1,
133             'fmt' => 'L',
134             'field' => 'rt'
135             },
136             'tolat' => {
137             'len' => 9,
138             'beg' => 220,
139             'bv' => 'No',
140             'fieldnum' => 44,
141             'type' => 'N',
142             'description' => 'End Latitude',
143             'end' => 228,
144             'fmt' => 'R',
145             'field' => 'tolat'
146             },
147             'fedirp' => {
148             'len' => 2,
149             'beg' => 18,
150             'bv' => 'Yes',
151             'fieldnum' => 6,
152             'type' => 'A',
153             'description' => 'Feature Direction, Prefix',
154             'end' => 19,
155             'fmt' => 'L',
156             'field' => 'fedirp'
157             },
158             'side1' => {
159             'len' => 1,
160             'beg' => 16,
161             'bv' => 'Yes',
162             'fieldnum' => 4,
163             'type' => 'N',
164             'description' => 'Single-Side Source Code',
165             'end' => 16,
166             'fmt' => 'R',
167             'field' => 'side1'
168             },
169             'census1' => {
170             'len' => 1,
171             'beg' => 129,
172             'bv' => 'Yes',
173             'fieldnum' => 25,
174             'type' => 'A',
175             'description' => 'Census Use 1',
176             'end' => 129,
177             'fmt' => 'L',
178             'field' => 'census1'
179             },
180             'tractl' => {
181             'len' => 6,
182             'beg' => 171,
183             'bv' => 'Yes',
184             'fieldnum' => 37,
185             'type' => 'N',
186             'description' => 'Census Tract, 2000 Left',
187             'end' => 176,
188             'fmt' => 'L',
189             'field' => 'tractl'
190             },
191             'tlid' => {
192             'len' => 10,
193             'beg' => 6,
194             'bv' => 'No',
195             'fieldnum' => 3,
196             'type' => 'N',
197             'description' => 'TIGER/Line ID, Permanent 1-Cell Number',
198             'end' => 15,
199             'fmt' => 'R',
200             'field' => 'tlid'
201             },
202             'tolong' => {
203             'len' => 10,
204             'beg' => 210,
205             'bv' => 'No',
206             'fieldnum' => 43,
207             'type' => 'N',
208             'description' => 'End Longitude',
209             'end' => 219,
210             'fmt' => 'R',
211             'field' => 'tolong'
212             },
213             'toiaddl' => {
214             'len' => 1,
215             'beg' => 104,
216             'bv' => 'Yes',
217             'fieldnum' => 16,
218             'type' => 'A',
219             'description' => 'End Imputed Address Flag, Left',
220             'end' => 104,
221             'fmt' => 'L',
222             'field' => 'toiaddl'
223             },
224             'frlong' => {
225             'len' => 10,
226             'beg' => 191,
227             'bv' => 'No',
228             'fieldnum' => 41,
229             'type' => 'N',
230             'description' => 'Start Longitude',
231             'end' => 200,
232             'fmt' => 'R',
233             'field' => 'frlong'
234             },
235             'source' => {
236             'len' => 1,
237             'beg' => 17,
238             'bv' => 'Yes',
239             'fieldnum' => 5,
240             'type' => 'A',
241             'description' => 'Linear Segment Source Code',
242             'end' => 17,
243             'fmt' => 'L',
244             'field' => 'source'
245             },
246             'countyr' => {
247             'len' => 3,
248             'beg' => 138,
249             'bv' => 'Yes',
250             'fieldnum' => 30,
251             'type' => 'N',
252             'description' => 'FIPS County Code, 2000 Right (always filled both sides, except at U.S. boundaries)',
253             'end' => 140,
254             'fmt' => 'L',
255             'field' => 'countyr'
256             },
257             'friaddl' => {
258             'len' => 1,
259             'beg' => 103,
260             'bv' => 'Yes',
261             'fieldnum' => 15,
262             'type' => 'A',
263             'description' => 'Start Imputed Address Flag, Left',
264             'end' => 103,
265             'fmt' => 'L',
266             'field' => 'friaddl'
267             },
268             'countyl' => {
269             'len' => 3,
270             'beg' => 135,
271             'bv' => 'Yes',
272             'fieldnum' => 29,
273             'type' => 'N',
274             'description' => 'FIPS County Code, 2000 Left (always filled both sides, except at U.S. boundaries)',
275             'end' => 137,
276             'fmt' => 'L',
277             'field' => 'countyl'
278             },
279             'stater' => {
280             'len' => 2,
281             'beg' => 133,
282             'bv' => 'Yes',
283             'fieldnum' => 28,
284             'type' => 'N',
285             'description' => 'FIPS State Code, 2000 Right (always filled both sides, except at U.S. boundaries)',
286             'end' => 134,
287             'fmt' => 'L',
288             'field' => 'stater'
289             },
290             'aihhtlil' => {
291             'len' => 1,
292             'beg' => 127,
293             'bv' => 'Yes',
294             'fieldnum' => 23,
295             'type' => 'A',
296             'description' => 'American Indian/Hawaiian Home Land Trust Land Indicator, 2000 Left',
297             'end' => 127,
298             'fmt' => 'L',
299             'field' => 'aihhtlil'
300             },
301             'cfcc' => {
302             'len' => 3,
303             'beg' => 56,
304             'bv' => 'No',
305             'fieldnum' => 10,
306             'type' => 'A',
307             'description' => 'Census Feature Class Code',
308             'end' => 58,
309             'fmt' => 'L',
310             'field' => 'cfcc'
311             },
312             'placel' => {
313             'len' => 5,
314             'beg' => 161,
315             'bv' => 'Yes',
316             'fieldnum' => 35,
317             'type' => 'N',
318             'description' => 'FIPS 55 Code (Place/CDP), 2000 Left',
319             'end' => 165,
320             'fmt' => 'L',
321             'field' => 'placel'
322             },
323             'aianhhfpr' => {
324             'len' => 5,
325             'beg' => 122,
326             'bv' => 'Yes',
327             'fieldnum' => 22,
328             'type' => 'N',
329             'description' => 'FIPS 55 Code (American Indian/Alaska Native Area/Hawaiian Home Land), 2000 Right',
330             'end' => 126,
331             'fmt' => 'L',
332             'field' => 'aianhhfpr'
333             },
334             'blockl' => {
335             'len' => 4,
336             'beg' => 183,
337             'bv' => 'Yes',
338             'fieldnum' => 39,
339             'type' => 'N',
340             'description' => 'Census Block Number, 2000 Left',
341             'end' => 186,
342             'fmt' => 'L',
343             'field' => 'blockl'
344             },
345             'zipl' => {
346             'len' => 5,
347             'beg' => 107,
348             'bv' => 'Yes',
349             'fieldnum' => 19,
350             'type' => 'N',
351             'description' => 'ZIP Code, Left',
352             'end' => 111,
353             'fmt' => 'L',
354             'field' => 'zipl'
355             },
356             'aianhhfpl' => {
357             'len' => 5,
358             'beg' => 117,
359             'bv' => 'Yes',
360             'fieldnum' => 21,
361             'type' => 'N',
362             'description' => 'FIPS 55 Code (American Indian/Alaska Native Area/Hawaiian Home Land), 2000 Left',
363             'end' => 121,
364             'fmt' => 'L',
365             'field' => 'aianhhfpl'
366             },
367             'cousubr' => {
368             'len' => 5,
369             'beg' => 146,
370             'bv' => 'Yes',
371             'fieldnum' => 32,
372             'type' => 'N',
373             'description' => 'FIPS 55 Code (County Subdivision), 2000 Right',
374             'end' => 150,
375             'fmt' => 'L',
376             'field' => 'cousubr'
377             },
378             'version' => {
379             'len' => 4,
380             'beg' => 2,
381             'bv' => 'No',
382             'fieldnum' => 2,
383             'type' => 'N',
384             'description' => 'Version Number',
385             'end' => 5,
386             'fmt' => 'L',
387             'field' => 'version'
388             },
389             'blockr' => {
390             'len' => 4,
391             'beg' => 187,
392             'bv' => 'Yes',
393             'fieldnum' => 40,
394             'type' => 'N',
395             'description' => 'Census Block Number, 2000 Right',
396             'end' => 190,
397             'fmt' => 'L',
398             'field' => 'blockr'
399             },
400             'toaddr' => {
401             'len' => 11,
402             'beg' => 92,
403             'bv' => 'Yes',
404             'fieldnum' => 14,
405             'type' => 'A',
406             'description' => 'End Address, Right',
407             'end' => 102,
408             'fmt' => 'R',
409             'field' => 'toaddr'
410             },
411             'submcdl' => {
412             'len' => 5,
413             'beg' => 151,
414             'bv' => 'Yes',
415             'fieldnum' => 33,
416             'type' => 'N',
417             'description' => 'FIPS 55 Code (Subbarrio), 2000 Left',
418             'end' => 155,
419             'fmt' => 'L',
420             'field' => 'submcdl'
421             },
422             'aihhtlir' => {
423             'len' => 1,
424             'beg' => 128,
425             'bv' => 'Yes',
426             'fieldnum' => 24,
427             'type' => 'A',
428             'description' => 'American Indian/Hawaiian Home Land Trust Land Indicator, 2000 Right',
429             'end' => 128,
430             'fmt' => 'L',
431             'field' => 'aihhtlir'
432             },
433             'placer' => {
434             'len' => 5,
435             'beg' => 166,
436             'bv' => 'Yes',
437             'fieldnum' => 36,
438             'type' => 'N',
439             'description' => 'FIPS 55 Code (Place/CDP), 2000 Right',
440             'end' => 170,
441             'fmt' => 'L',
442             'field' => 'placer'
443             },
444             'fraddl' => {
445             'len' => 11,
446             'beg' => 59,
447             'bv' => 'Yes',
448             'fieldnum' => 11,
449             'type' => 'A',
450             'description' => 'Start Address, Left',
451             'end' => 69,
452             'fmt' => 'R',
453             'field' => 'fraddl'
454             },
455             'fedirs' => {
456             'len' => 2,
457             'beg' => 54,
458             'bv' => 'Yes',
459             'fieldnum' => 9,
460             'type' => 'A',
461             'description' => 'Feature Direction, Suffix',
462             'end' => 55,
463             'fmt' => 'L',
464             'field' => 'fedirs'
465             },
466             'fraddr' => {
467             'len' => 11,
468             'beg' => 81,
469             'bv' => 'Yes',
470             'fieldnum' => 13,
471             'type' => 'A',
472             'description' => 'Start Address, Right',
473             'end' => 91,
474             'fmt' => 'R',
475             'field' => 'fraddr'
476             },
477             'statel' => {
478             'len' => 2,
479             'beg' => 131,
480             'bv' => 'Yes',
481             'fieldnum' => 27,
482             'type' => 'N',
483             'description' => 'FIPS State Code, 2000 Left (always filled both sides, except at U.S. boundaries)',
484             'end' => 132,
485             'fmt' => 'L',
486             'field' => 'statel'
487             },
488             'census2' => {
489             'len' => 1,
490             'beg' => 130,
491             'bv' => 'Yes',
492             'fieldnum' => 26,
493             'type' => 'A',
494             'description' => 'Census Use 2',
495             'end' => 130,
496             'fmt' => 'L',
497             'field' => 'census2'
498             }
499             );
500              
501              
502             my @Data_Fields = (
503             'rt',
504             'version',
505             'tlid',
506             'side1',
507             'source',
508             'fedirp',
509             'fename',
510             'fetype',
511             'fedirs',
512             'cfcc',
513             'fraddl',
514             'toaddl',
515             'fraddr',
516             'toaddr',
517             'friaddl',
518             'toiaddl',
519             'friaddr',
520             'toiaddr',
521             'zipl',
522             'zipr',
523             'aianhhfpl',
524             'aianhhfpr',
525             'aihhtlil',
526             'aihhtlir',
527             'census1',
528             'census2',
529             'statel',
530             'stater',
531             'countyl',
532             'countyr',
533             'cousubl',
534             'cousubr',
535             'submcdl',
536             'submcdr',
537             'placel',
538             'placer',
539             'tractl',
540             'tractr',
541             'blockl',
542             'blockr',
543             'frlong',
544             'frlat',
545             'tolong',
546             'tolat'
547             );
548              
549              
550             assert(keys %Data_Dict == @Data_Fields);
551              
552             # Turn the data dictionary into class data
553             __PACKAGE__->mk_classdata('Fields');
554             __PACKAGE__->mk_classdata('Dict');
555             __PACKAGE__->mk_classdata('Pack_Tmpl');
556              
557             __PACKAGE__->Dict(\%Data_Dict);
558             __PACKAGE__->Fields(\@Data_Fields);
559              
560             # Generate a pack template for parsing and turn it into class data.
561             my $pack_tmpl = join ' ', map { "A$_" } map { $_->{len} }
562             @Data_Dict{@Data_Fields};
563             __PACKAGE__->Pack_Tmpl($pack_tmpl);
564              
565             # Generate accessors for each data field
566             foreach my $def (@Data_Dict{@Data_Fields}) {
567             __PACKAGE__->mk_accessor($def);
568             }
569              
570              
571             =pod
572              
573             =head1 NAME
574              
575             Geo::TigerLine::Record::1 - TIGER/Line 2003 Complete Chain Basic Data Record
576              
577             =head1 SYNOPSIS
578              
579             use Geo::TigerLine::Record::1;
580              
581             @records = Geo::TigerLine::Record::1->parse_file($fh);
582             @records = Geo::TigerLine::Record::1->parse_file($fh, \&callback);
583              
584             $record = Geo::TigerLine::Record::1->new(\%fields);
585              
586             $record->rt();
587             $record->version();
588             $record->tlid();
589             $record->side1();
590             $record->source();
591             $record->fedirp();
592             $record->fename();
593             $record->fetype();
594             $record->fedirs();
595             $record->cfcc();
596             $record->fraddl();
597             $record->toaddl();
598             $record->fraddr();
599             $record->toaddr();
600             $record->friaddl();
601             $record->toiaddl();
602             $record->friaddr();
603             $record->toiaddr();
604             $record->zipl();
605             $record->zipr();
606             $record->aianhhfpl();
607             $record->aianhhfpr();
608             $record->aihhtlil();
609             $record->aihhtlir();
610             $record->census1();
611             $record->census2();
612             $record->statel();
613             $record->stater();
614             $record->countyl();
615             $record->countyr();
616             $record->cousubl();
617             $record->cousubr();
618             $record->submcdl();
619             $record->submcdr();
620             $record->placel();
621             $record->placer();
622             $record->tractl();
623             $record->tractr();
624             $record->blockl();
625             $record->blockr();
626             $record->frlong();
627             $record->frlat();
628             $record->tolong();
629             $record->tolat();
630              
631              
632             =head1 DESCRIPTION
633              
634             This is a class representing record type 1 of the TIGER/Line 2003
635             census geographic database. Each object is one record. It also
636             contains methods to parse TIGER/Line record type 1 files and turn them
637             into objects.
638              
639             This is intended as an intermediate format between pulling the raw
640             data out of the simplistic TIGER/Line data files into something more
641             sophisticated (a process you should only have to do once). As such,
642             it's not very fast, but its careful, easy to use and performs some
643             verifications on the data being read.
644              
645             As this class is autogenerated by mk_parsers, think before you modify this
646             file. It's OO, so consider sub-classing instead.
647              
648              
649             =head2 Accessors
650              
651             These are simple get/set accessors for each field of a record
652             generated from the TIGER/Line 2003 data dictionary. They perform some
653             data validation.
654              
655             =over 4
656              
657             =item B
658              
659             $data = $record->rt();
660             $record->rt($data);
661              
662             Record Type.
663              
664             Expects alphanumeric data of no more than 1 characters. $data cannot be blank
665             and should be left justified.
666              
667              
668             =item B
669              
670             $data = $record->version();
671             $record->version($data);
672              
673             Version Number.
674              
675             Expects numeric data of no more than 4 characters. $data cannot be blank
676             and should be left justified.
677              
678              
679             =item B
680              
681             $data = $record->tlid();
682             $record->tlid($data);
683              
684             TIGER/Line ID, Permanent 1-Cell Number.
685              
686             Expects numeric data of no more than 10 characters. $data cannot be blank
687             and should be right justified.
688              
689              
690             =item B
691              
692             $data = $record->side1();
693             $record->side1($data);
694              
695             Single-Side Source Code.
696              
697             Expects numeric data of no more than 1 characters. $data can be blank
698             and should be right justified.
699              
700              
701             =item B
702              
703             $data = $record->source();
704             $record->source($data);
705              
706             Linear Segment Source Code.
707              
708             Expects alphanumeric data of no more than 1 characters. $data can be blank
709             and should be left justified.
710              
711              
712             =item B
713              
714             $data = $record->fedirp();
715             $record->fedirp($data);
716              
717             Feature Direction, Prefix.
718              
719             Expects alphanumeric data of no more than 2 characters. $data can be blank
720             and should be left justified.
721              
722              
723             =item B
724              
725             $data = $record->fename();
726             $record->fename($data);
727              
728             Feature Name.
729              
730             Expects alphanumeric data of no more than 30 characters. $data can be blank
731             and should be left justified.
732              
733              
734             =item B
735              
736             $data = $record->fetype();
737             $record->fetype($data);
738              
739             Feature Type.
740              
741             Expects alphanumeric data of no more than 4 characters. $data can be blank
742             and should be left justified.
743              
744              
745             =item B
746              
747             $data = $record->fedirs();
748             $record->fedirs($data);
749              
750             Feature Direction, Suffix.
751              
752             Expects alphanumeric data of no more than 2 characters. $data can be blank
753             and should be left justified.
754              
755              
756             =item B
757              
758             $data = $record->cfcc();
759             $record->cfcc($data);
760              
761             Census Feature Class Code.
762              
763             Expects alphanumeric data of no more than 3 characters. $data cannot be blank
764             and should be left justified.
765              
766              
767             =item B
768              
769             $data = $record->fraddl();
770             $record->fraddl($data);
771              
772             Start Address, Left.
773              
774             Expects alphanumeric data of no more than 11 characters. $data can be blank
775             and should be right justified.
776              
777              
778             =item B
779              
780             $data = $record->toaddl();
781             $record->toaddl($data);
782              
783             End Address, Left.
784              
785             Expects alphanumeric data of no more than 11 characters. $data can be blank
786             and should be right justified.
787              
788              
789             =item B
790              
791             $data = $record->fraddr();
792             $record->fraddr($data);
793              
794             Start Address, Right.
795              
796             Expects alphanumeric data of no more than 11 characters. $data can be blank
797             and should be right justified.
798              
799              
800             =item B
801              
802             $data = $record->toaddr();
803             $record->toaddr($data);
804              
805             End Address, Right.
806              
807             Expects alphanumeric data of no more than 11 characters. $data can be blank
808             and should be right justified.
809              
810              
811             =item B
812              
813             $data = $record->friaddl();
814             $record->friaddl($data);
815              
816             Start Imputed Address Flag, Left.
817              
818             Expects alphanumeric data of no more than 1 characters. $data can be blank
819             and should be left justified.
820              
821              
822             =item B
823              
824             $data = $record->toiaddl();
825             $record->toiaddl($data);
826              
827             End Imputed Address Flag, Left.
828              
829             Expects alphanumeric data of no more than 1 characters. $data can be blank
830             and should be left justified.
831              
832              
833             =item B
834              
835             $data = $record->friaddr();
836             $record->friaddr($data);
837              
838             Start Imputed Address Flag, Right.
839              
840             Expects alphanumeric data of no more than 1 characters. $data can be blank
841             and should be left justified.
842              
843              
844             =item B
845              
846             $data = $record->toiaddr();
847             $record->toiaddr($data);
848              
849             End Imputed Address Flag, Right.
850              
851             Expects alphanumeric data of no more than 1 characters. $data can be blank
852             and should be left justified.
853              
854              
855             =item B
856              
857             $data = $record->zipl();
858             $record->zipl($data);
859              
860             ZIP Code, Left.
861              
862             Expects numeric data of no more than 5 characters. $data can be blank
863             and should be left justified.
864              
865              
866             =item B
867              
868             $data = $record->zipr();
869             $record->zipr($data);
870              
871             ZIP Code, Right.
872              
873             Expects numeric data of no more than 5 characters. $data can be blank
874             and should be left justified.
875              
876              
877             =item B
878              
879             $data = $record->aianhhfpl();
880             $record->aianhhfpl($data);
881              
882             FIPS 55 Code (American Indian/Alaska Native Area/Hawaiian Home Land), 2000 Left.
883              
884             Expects numeric data of no more than 5 characters. $data can be blank
885             and should be left justified.
886              
887              
888             =item B
889              
890             $data = $record->aianhhfpr();
891             $record->aianhhfpr($data);
892              
893             FIPS 55 Code (American Indian/Alaska Native Area/Hawaiian Home Land), 2000 Right.
894              
895             Expects numeric data of no more than 5 characters. $data can be blank
896             and should be left justified.
897              
898              
899             =item B
900              
901             $data = $record->aihhtlil();
902             $record->aihhtlil($data);
903              
904             American Indian/Hawaiian Home Land Trust Land Indicator, 2000 Left.
905              
906             Expects alphanumeric data of no more than 1 characters. $data can be blank
907             and should be left justified.
908              
909              
910             =item B
911              
912             $data = $record->aihhtlir();
913             $record->aihhtlir($data);
914              
915             American Indian/Hawaiian Home Land Trust Land Indicator, 2000 Right.
916              
917             Expects alphanumeric data of no more than 1 characters. $data can be blank
918             and should be left justified.
919              
920              
921             =item B
922              
923             $data = $record->census1();
924             $record->census1($data);
925              
926             Census Use 1.
927              
928             Expects alphanumeric data of no more than 1 characters. $data can be blank
929             and should be left justified.
930              
931              
932             =item B
933              
934             $data = $record->census2();
935             $record->census2($data);
936              
937             Census Use 2.
938              
939             Expects alphanumeric data of no more than 1 characters. $data can be blank
940             and should be left justified.
941              
942              
943             =item B
944              
945             $data = $record->statel();
946             $record->statel($data);
947              
948             FIPS State Code, 2000 Left (always filled both sides, except at U.S. boundaries).
949              
950             Expects numeric data of no more than 2 characters. $data can be blank
951             and should be left justified.
952              
953              
954             =item B
955              
956             $data = $record->stater();
957             $record->stater($data);
958              
959             FIPS State Code, 2000 Right (always filled both sides, except at U.S. boundaries).
960              
961             Expects numeric data of no more than 2 characters. $data can be blank
962             and should be left justified.
963              
964              
965             =item B
966              
967             $data = $record->countyl();
968             $record->countyl($data);
969              
970             FIPS County Code, 2000 Left (always filled both sides, except at U.S. boundaries).
971              
972             Expects numeric data of no more than 3 characters. $data can be blank
973             and should be left justified.
974              
975              
976             =item B
977              
978             $data = $record->countyr();
979             $record->countyr($data);
980              
981             FIPS County Code, 2000 Right (always filled both sides, except at U.S. boundaries).
982              
983             Expects numeric data of no more than 3 characters. $data can be blank
984             and should be left justified.
985              
986              
987             =item B
988              
989             $data = $record->cousubl();
990             $record->cousubl($data);
991              
992             FIPS 55 Code (County Subdivision), 2000 Left.
993              
994             Expects numeric data of no more than 5 characters. $data can be blank
995             and should be left justified.
996              
997              
998             =item B
999              
1000             $data = $record->cousubr();
1001             $record->cousubr($data);
1002              
1003             FIPS 55 Code (County Subdivision), 2000 Right.
1004              
1005             Expects numeric data of no more than 5 characters. $data can be blank
1006             and should be left justified.
1007              
1008              
1009             =item B
1010              
1011             $data = $record->submcdl();
1012             $record->submcdl($data);
1013              
1014             FIPS 55 Code (Subbarrio), 2000 Left.
1015              
1016             Expects numeric data of no more than 5 characters. $data can be blank
1017             and should be left justified.
1018              
1019              
1020             =item B
1021              
1022             $data = $record->submcdr();
1023             $record->submcdr($data);
1024              
1025             FIPS 55 Code (Subbarrio), 2000 Right.
1026              
1027             Expects numeric data of no more than 5 characters. $data can be blank
1028             and should be left justified.
1029              
1030              
1031             =item B
1032              
1033             $data = $record->placel();
1034             $record->placel($data);
1035              
1036             FIPS 55 Code (Place/CDP), 2000 Left.
1037              
1038             Expects numeric data of no more than 5 characters. $data can be blank
1039             and should be left justified.
1040              
1041              
1042             =item B
1043              
1044             $data = $record->placer();
1045             $record->placer($data);
1046              
1047             FIPS 55 Code (Place/CDP), 2000 Right.
1048              
1049             Expects numeric data of no more than 5 characters. $data can be blank
1050             and should be left justified.
1051              
1052              
1053             =item B
1054              
1055             $data = $record->tractl();
1056             $record->tractl($data);
1057              
1058             Census Tract, 2000 Left.
1059              
1060             Expects numeric data of no more than 6 characters. $data can be blank
1061             and should be left justified.
1062              
1063              
1064             =item B
1065              
1066             $data = $record->tractr();
1067             $record->tractr($data);
1068              
1069             Census Tract, 2000 Right.
1070              
1071             Expects numeric data of no more than 6 characters. $data can be blank
1072             and should be left justified.
1073              
1074              
1075             =item B
1076              
1077             $data = $record->blockl();
1078             $record->blockl($data);
1079              
1080             Census Block Number, 2000 Left.
1081              
1082             Expects numeric data of no more than 4 characters. $data can be blank
1083             and should be left justified.
1084              
1085              
1086             =item B
1087              
1088             $data = $record->blockr();
1089             $record->blockr($data);
1090              
1091             Census Block Number, 2000 Right.
1092              
1093             Expects numeric data of no more than 4 characters. $data can be blank
1094             and should be left justified.
1095              
1096              
1097             =item B
1098              
1099             $data = $record->frlong();
1100             $record->frlong($data);
1101              
1102             Start Longitude.
1103              
1104             Expects numeric data of no more than 10 characters. $data cannot be blank
1105             and should be right justified.
1106              
1107              
1108             =item B
1109              
1110             $data = $record->frlat();
1111             $record->frlat($data);
1112              
1113             Start Latitude.
1114              
1115             Expects numeric data of no more than 9 characters. $data cannot be blank
1116             and should be right justified.
1117              
1118              
1119             =item B
1120              
1121             $data = $record->tolong();
1122             $record->tolong($data);
1123              
1124             End Longitude.
1125              
1126             Expects numeric data of no more than 10 characters. $data cannot be blank
1127             and should be right justified.
1128              
1129              
1130             =item B
1131              
1132             $data = $record->tolat();
1133             $record->tolat($data);
1134              
1135             End Latitude.
1136              
1137             Expects numeric data of no more than 9 characters. $data cannot be blank
1138             and should be right justified.
1139              
1140              
1141              
1142             =back
1143              
1144              
1145             =head2 Data dictionary
1146              
1147             This is the original TIGER/Line 2003 data dictionary from which this
1148             class was generated.
1149              
1150             Record Type 1 - Complete Chain Basic Data Record
1151            
1152             Field BV Fmt Type Beg End Len Description
1153             RT No L A 1 1 1 Record Type
1154             VERSION No L N 2 5 4 Version Number
1155             TLID No R N 6 15 10 TIGER/Line ID, Permanent 1-Cell Number
1156             SIDE1 Yes R N 16 16 1 Single-Side Source Code
1157             SOURCE Yes L A 17 17 1 Linear Segment Source Code
1158             FEDIRP Yes L A 18 19 2 Feature Direction, Prefix
1159             FENAME Yes L A 20 49 30 Feature Name
1160             FETYPE Yes L A 50 53 4 Feature Type
1161             FEDIRS Yes L A 54 55 2 Feature Direction, Suffix
1162             CFCC No L A 56 58 3 Census Feature Class Code
1163             FRADDL Yes R A 59 69 11 Start Address, Left
1164             TOADDL Yes R A 70 80 11 End Address, Left
1165             FRADDR Yes R A 81 91 11 Start Address, Right
1166             TOADDR Yes R A 92 102 11 End Address, Right
1167             FRIADDL Yes L A 103 103 1 Start Imputed Address Flag, Left
1168             TOIADDL Yes L A 104 104 1 End Imputed Address Flag, Left
1169             FRIADDR Yes L A 105 105 1 Start Imputed Address Flag, Right
1170             TOIADDR Yes L A 106 106 1 End Imputed Address Flag, Right
1171             ZIPL Yes L N 107 111 5 ZIP Code, Left
1172             ZIPR Yes L N 112 116 5 ZIP Code, Right
1173             AIANHHFPR Yes L N 122 126 5 FIPS 55 Code (American Indian/Alaska Native Area/Hawaiian Home Land), 2000 Right
1174             AIANHHFPL Yes L N 117 121 5 FIPS 55 Code (American Indian/Alaska Native Area/Hawaiian Home Land), 2000 Left
1175             AIHHTLIL Yes L A 127 127 1 American Indian/Hawaiian Home Land Trust Land Indicator, 2000 Left
1176             AIHHTLIR Yes L A 128 128 1 American Indian/Hawaiian Home Land Trust Land Indicator, 2000 Right
1177             CENSUS1 Yes L A 129 129 1 Census Use 1
1178             CENSUS2 Yes L A 130 130 1 Census Use 2
1179             STATEL Yes L N 131 132 2 FIPS State Code, 2000 Left (always filled both sides, except at U.S. boundaries)
1180             STATER Yes L N 133 134 2 FIPS State Code, 2000 Right (always filled both sides, except at U.S. boundaries)
1181             COUNTYL Yes L N 135 137 3 FIPS County Code, 2000 Left (always filled both sides, except at U.S. boundaries)
1182             COUNTYR Yes L N 138 140 3 FIPS County Code, 2000 Right (always filled both sides, except at U.S. boundaries)
1183             COUSUBL Yes L N 141 145 5 FIPS 55 Code (County Subdivision), 2000 Left
1184             COUSUBR Yes L N 146 150 5 FIPS 55 Code (County Subdivision), 2000 Right
1185             SUBMCDL Yes L N 151 155 5 FIPS 55 Code (Subbarrio), 2000 Left
1186             SUBMCDR Yes L N 156 160 5 FIPS 55 Code (Subbarrio), 2000 Right
1187             PLACEL Yes L N 161 165 5 FIPS 55 Code (Place/CDP), 2000 Left
1188             PLACER Yes L N 166 170 5 FIPS 55 Code (Place/CDP), 2000 Right
1189             TRACTL Yes L N 171 176 6 Census Tract, 2000 Left
1190             TRACTR Yes L N 177 182 6 Census Tract, 2000 Right
1191             BLOCKL Yes L N 183 186 4 Census Block Number, 2000 Left
1192             BLOCKR Yes L N 187 190 4 Census Block Number, 2000 Right
1193             FRLONG No R N 191 200 10 Start Longitude
1194             FRLAT No R N 201 209 9 Start Latitude
1195             TOLONG No R N 210 219 10 End Longitude
1196             TOLAT No R N 220 228 9 End Latitude
1197            
1198              
1199              
1200              
1201             =head1 AUTHOR
1202              
1203             Michael G Schwern
1204              
1205             =head1 SEE ALSO
1206              
1207             L, L
1208              
1209             =cut
1210              
1211              
1212             return 'Honey flash!';