foreach my $line ( @name_lines ) { #$/ = '\n' ; chomp($line) ; my @data = split '\|' , $line ; #map { $_ =~ s/[^a-zA-Z0-9_\@\. ]//g } @data ; #print Dumper @data ; my ( $name , $email , $wishlist , $address , $spouse_name ) = @data ; $people{$name}{email} = $email ; $people{$name}{wishlist} = $wishlist ; $people{$name}{address} = $address ; $people{$name}{spouse} = $spouse_name ; if ( $spouse_name ne '' ) { $spouses{$name} = $spouse_name ; } } print Dumper %spouses ; $VAR1 = 'Jay'; ';AR2 = 'Shirley $VAR3 = 'Travis'; ';AR4 = 'Emmy $VAR5 = 'Trisha'; ';AR6 = 'Eddie $VAR7 = 'Eddie'; ';AR8 = 'Trisha $VAR9 = 'Shirley'; ';AR10 = 'Jay