Нет, это не настраиваемый параметр. Это делается методом copy_if_modified
в Module::Build::Base
:
# mode is read-only + (executable if source is executable)
my $mode = oct(444) | ( $self->is_executable($file) ? oct(111) : 0 );
chmod( $mode, $to_path );
Если вы управляете Build.PL, вы можете создать подкласс Module::Build
и переопределить copy_if_modified
для вызова базового класса, а затем chmod
для записи в файл. Но у меня создается впечатление, что вы просто пытаетесь установить чужой модуль.
Вероятно, проще всего было бы установить копию Module::Build
в личный каталог, а затем отредактировать ее для использования oct(666)
(или любого другого режима, который вы хотите). Затем вызовите perl -I /path/to/customized/Module/Build Build.PL
. Или (как вы сказали) просто используйте стандарт Module::Build
и добавьте отдельный шаг, чтобы пометить все, что будет доступно для записи впоследствии.
Обновление: YSTH прав; это ExtUtils :: Install , которая фактически делает окончательную копию. copy_if_modified
для заполнения blib
. Но ExtUtils :: Install также жестко кодирует режим только для чтения. Вы можете использовать настроенную версию ExtUtils :: Install, но, вероятно, проще сделать отдельный шаг.