diff -u -r -x Changes Geo-StreetAddress-US-1.04/t/01_parser.t Geo-StreetAddress-US-1.04a/t/01_parser.t
--- Geo-StreetAddress-US-1.04/t/01_parser.t 2014-03-04 06:27:52.000000000 -0800
+++ Geo-StreetAddress-US-1.04a/t/01_parser.t 2015-01-23 09:58:36.868423937 -0800
@@ -209,13 +209,21 @@
'type' => 'Ave',
'prefix' => 'SE'
},
- "3813 1/2 Some Road, Los Angeles, CA" => {
- 'number' => '3813',
+ "3813 1/2 Some Road, Los Angeles, CA" => { # fractional house number
+ 'number' => '3813 1/2',
'street' => 'Some',
'state' => 'CA',
'city' => 'Los Angeles',
'type' => 'Rd',
},
+ "9001 Avenue 8 1/2, Madera, California" => { # fractional street number
+ 'number' => '9001',
+ 'street' => 'Avenue 8 1/2',
+ 'state' => 'CA',
+ 'city' => 'Madera',
+ 'type' => '',
+ },
+
"Mission & Valencia San Francisco CA" => {
'type1' => '',
'type2' => '',
diff -u -r -x Changes Geo-StreetAddress-US-1.04/US.pm Geo-StreetAddress-US-1.04a/US.pm
--- Geo-StreetAddress-US-1.04/US.pm 2014-03-04 07:32:20.000000000 -0800
+++ Geo-StreetAddress-US-1.04a/US.pm 2015-01-23 10:00:26.316426868 -0800
@@ -792,7 +792,8 @@
# treat "42S" as "42 S" (42 South). For example,
# Utah and Wisconsin have a more elaborate system of block numbering
#
http://en.wikipedia.org/wiki/House_number#Block_numbers
- $Addr_Match{number} = qr/(\d+-?\d*)(?=\D) (?{ $_{number} = $^N })/ix,
+ $Addr_Match{number} = qr/(\d+-?\d*)(?=\D (?:\s+$Addr_Match{fraction})?)
+ (?{ $_{number} = $^N })/ix,
# note that expressions like [^,]+ may scan more than you expect
$Addr_Match{street} = qr/
@@ -1049,7 +1050,7 @@
#m/^_/ and delete $part->{$_} for keys %$part; # for debug
# strip off some punctuation
- defined($_) && s/^\s+|\s+$|[^\w\s\-\#\&]//gos for values %$part;
+ defined($_) && s/^\s+|\s+$|[^\w\s\-\/\#\&]//gos for values %$part;
while (my ($key, $map) = each %Normalize_Map) {
$part->{$key} = $map->{lc $part->{$key}}