my $oldhostname = "whatever"; my $newhostname = shift || "somethingnew"; die "Nothing to do\n" if ( $oldhostname eq $newhostname ); print "changing $oldhostname to $newhostname\n"; open( FLIST, "; chomp @oldfiles; my @renamefiles = grep /$oldhostname/i, @oldfiles; s/$oldhostname/$newhostname/gi for @renamefiles; for my $file ( @oldfiles ) { my $newfile = ( $file =~ /$oldhostname/i ) ? shift @renamefiles : "$file.tmp"; open(IN, "<$file") or die "Unable to read $file: $!\n"; open(OUT, ">$newfile) or die "Can't write $newfile:$!\n; while () { s/$oldhostname/$newhostname/gi; print OUT; } close OUT; close IN; unlink $file; rename $newfile, $file if ( $newfile eq "$file.tmp" ); }