1#!/usr/local/bin/perl 2 3# /examples/pre_parse.pl 4# Demo script for Lingua::EN::AddressParse.pm 5 6use strict; 7use Lingua::EN::AddressParse; 8 9 10my %args = 11( 12 country => 'Australia', 13 auto_clean => 1, 14 force_case => 1, 15); 16 17 18my $address = Lingua::EN::AddressParse->new(%args); 19 20while (<DATA>) 21{ 22 chomp($_); 23 my $input = correct($_); 24 my $error = $address->parse($input); 25 26 print("-" x 50,"\n", $address->report); 27} 28 29#------------------------------------------------------------------------------ 30# Correct common typing errors to make address more well formed 31sub correct 32{ 33 my ($address) = @_; 34 35 # Fix badly formed abbreviations 36 $address =~ s|CSEWY|CAUSEWAY|; 37 $address =~ s|Csewy|Causeway|; 38 $address =~ s|LVL|LEVEL|; 39 $address =~ s|Lvl|Level|; 40 41 42 # Fix badly formed number dividers sush as 14/ 12, 2- 7A 43 $address =~ s|/ |/|; 44 $address =~ s| /|/|; 45 $address =~ s|- |-|; 46 $address =~ s| -|/|; 47 $address =~ s|,| |; 48 49 return($address); 50} 51 52 53__DATA__ 54LVL 2 12 Moore Park Road WODIN NSW 2600 55SHED 23/12 A STREET WODIN NSW 2600 AUSTRALIA 5623B/ 14C SOUTH HEAD ROAD WODIN NSW 2600 AUSTRALIA 57PO BOX 222 FINLEY NEW SOUTH WALES 2713 58U12 2 SMITH ST ULTIMO NSW 2007 59