@files = File::Find::Rule->file ->name('complex.*') ->in ("/home"); $new = 'replace'; open (REPLACE, "<$new"); while () { push @new, $_ =~ m/^(\S+\s+\S+\s+\S+)/; } close (REPLACE); foreach $file (@files) { open (FH, "<$file"); open (OUT, ">output"); while () { $_ =~ s/^\S+\s+\S+\s+\S+/$new[$i++] /; print OUT $_; $count++; rename "NEWNAMES", "NEWNAMES$count"; } close(FH); }