my %new_pass; while () { chomp; my @f = split(':', $_); $new_pass{$f[0]} = $f[2]; } #### while () { chomp; my @f = split(':', $_); if (exists $new_pass[$f[0]]) { $f[1] = $new_pass[$f[0]]; } print F3 join(':', @f), "\n"; }