#!/usr/bin/env perl use strict; use warnings; use Data::Dumper; my @addresses = ( "305 Ingham Rd Garbutt QLD 4814", "Castletown Shoppingworld, Cnr Kings Rd & Woolcock St Hyde Park QLD 4812", ); for my $address (@addresses) { $address =~ /(.+) (St|Rd|Crs) (.+) (\w+) (\d+)$/; my ($street, $suburb, $state, $postcode) = ($1." ".$2, $3, $4, $5); print "'$street' '$suburb' '$state' '$postcode'\n"; } #### '305 Ingham Rd' Garbutt' 'QLD' '4814' 'Castletown Shoppingworld, Cnr Kings Rd & Woolcock St' 'Hyde Park' 'QLD' '4812'