8 my @parts = split '\|';
10 # PRIV_EXP_DATE CREATION_DATE PRIV_GRANT_DATE DELINQ_STATUS
13 # USER_BARCODE PROFILE COUNTY(CAT1) BIRTH_YEAR
16 # HOME_LIB ZIP ALTID ADDRESS1
19 # ADDRESS2 PHONE EMAIL NAME
22 # NUM_CLAIMED_RETURNED
26 my $addr = parse_addr(@parts[19,20]);
28 $$addr{county} = $parts[13];
29 $$addr{zip} ||= $parts[17];
38 $addr1 =~ s/^\s*(.+)\s*$/$1/gso;
39 $addr2 =~ s/^\s*(.+)\s*$/$1/gso;
41 $addr1 =~ s/\s+/ /gso;
42 $addr2 =~ s/\s+/ /gso;
46 if ($addr1 =~ /^(\d+\s+[^,]+)/o) {
48 if ($addr1 =~ /,\s+(.+)$/o) {
50 if ($a2 =~ /^(\w{2})\.?\s+(\d+)$/o) {
51 $hash{state} = uc($1);
53 } elsif (lc($a2) !~ /^(?:s\.?e\.?|s\.?w\.?|n\.?e\.?|n\.?w\.?|south|north|east|west|n\.?|s\.?|e\.?|w\.?)$/) {
54 $hash{address2} = $a2;
56 $hash{address1} .= " $a2";
60 $hash{address1} = $addr1;
63 if ($addr2 =~ /^([^,]+),\s*(\w{2}).*\s+(\w+)$/o) {
65 $hash{state} = uc($2);