#!/usr/bin/perl use strict; use warnings; use v5.10; my @numbers=('(123)456-7890', "222.222.2222", "1-313-345-6798","23-35 Baker St. Apt 6", "666 666 6666", "123-345.5678", "45 elm street", "123-345.5678x999", "666 666 6666 x233"); foreach my $number (@numbers){ #strip phone number punctuation: my $address=$number; $number =~ s/\(?(\d+)[-(). ](\d|x\d)/$1$2/g; if ($number=~m/\d{7,11}/){ # you could regularize phone number formatting in here say $number." Phone number"; } else { say $address." Address"; # process the number as an address $address =~ m/(\d+)/; say "address number $1"; } } #### 1234567890 Phone number 2222222222 Phone number 13133456798 Phone number 23-35 Baker St. Apt 6 Address address number 23 6666666666 Phone number 1233455678 Phone number 45 elm street Address address number 45 1233455678x999 Phone number 6666666666x233 Phone number