#!/usr/bin/env perl use strict; use warnings; use Test::More tests => 2; my %names = ( 'BULLOCK JOE A' => 'JOE', 'SMITH, A DOE' => 'DOE' ); for my $fullname (keys %names) { my ($sname, $fname) = $fullname =~ /([A-Z]{3,})/g; is ($fname, $names{$fullname}, "Forename $fname extracted from $fullname"); }