use strict; use warnings; use File::Copy; File::Copy::copy('Tcl.dll', 'Tcl.dll_bak') or die $!; open my $infh, '<', 'Tcl.dll' or die $!; open my $outfh, '>', 'Tcl.dll_new' or die $!; binmode($infh); binmode($outfh); while(<$infh>) { $_ =~ s/zlib1\.dll/zxxxx.dll/g; print $outfh, $_; } #### close $infh; close $outfh; my $mode = (stat('Tcl.dll'))[2]; my $newmode = $mode | 0220; chmod($newmode, 'Tcl.dll'); unlink 'Tcl.dll'; File::Copy::copy( 'Tcl.dll_new', 'Tcl.dll') or die $!; chmod($mode, 'Tcl.dll'); unlink('Tcl.dll_new');