my @line; foreach my $line (@data_file) { @line = $line =~ / (\d+)\s+ # first numbers ([^\d]+) # full name (.*)?(?:\w\w)\s+ # street address (\w\w)\s+ # state (\d{5})\s+ # zip (\d{3}-\d{3}-\d{4})\s+ # phone (.*) # the rest /x; print join('|',@line),"\n"; }