use strict; use warnings; use Tie::RegexpHash; tie my %names, 'Tie::RegexpHash' or die $!; %names = ( qr/Julia_Roberts/ => ["Julia_Roberts","(1,5)"], qr/Cintheia/ => ["Cintheia"], qr/Chelsia/ => ["Chelsia"] ); while (){ chomp; my @pair = split; $names{$pair[1]}->[1]= $names{$pair[0]}->[1]; print join ("",@{$names{$_}}),"\n" for (keys %names); print "\n"; } __DATA__ Julia_Roberts Cintheia Julia_Roberts(1,5) Cintheia Julia_Roberts Chelsia