use warnings; use strict; my %names; while () { next if /^ID/; my ($first, $last) = (split)[1 .. 2]; $last =~ s/,//; push @{ $names{$last} }, $first; } print "$_ Rhodes\n" for @{ $names{Rhodes} }; __DATA__ ID NAME FAMILYTAG EFFECT 001 John Black Positive 002 Kate Rhodes, Mich Positive 003 Aaron Sunders Negative 004 Shirley Rhodes Negative 005 Dexter Sunders Positive