use warnings; use strict; use Inline::Files; my %name_change; while () { chomp; next if /^$/; my ( $k, $v ) = split /,/, $_; $name_change{$k} = $v; } while () { chomp; s/(uid=)(.+?),/$1$name_change{$2},/ if /uid/; print $_, $/; } __FILE_1__ anakin,james obiwan,nicol skywalker,sarah darthvader,robert __FILE_2__ DN: CN=Itmanagement,OU=Groups,O=uni.com ChangeType: Modify Add: uniquemember uniquemember: uid=anakin,OU=Users,o=uni.com DN: CN=ComputerScience,OU=Groups,o=uni.com ChangeType: Modify Add: uniquemember uniquemember: uid=obiwan,OU=Users,o=uni.com DN: CN=accoutning,OU=Groups,o=uni.com ChangeType: Modify Add: uniquemember uniquemember: uid=skywalker,OU=Users,o=uni.com DN: CN=management,OU=Groups,o=uni.com ChangeType: Modify Add: uniquemember uniquemember: uid=anakin,OU=Users,o=uni.com