in reply to File::Copy but...

You might try something like the following (untested):
my $mode = (stat $oldfile)[2]; chmod( $mode, $newfile );