Как в Perl пометить сгенерированный файл как исполняемый? - PullRequest
0 голосов
/ 07 января 2011

В моем сценарии на Perl я создаю сценарий оболочки (что-то для последующей обработки результатов длительного моделирования) Я хочу пометить этот файл как исполняемый.

$fileName = 'postProcess.tcsh';

Очевидно, я мог бы сделать следующее:

system("chmod +x $fileName");

Но мне любопытно, есть ли решение, позволяющее избежать системного вызова. Другими словами, будет ли метод в модуле File, возможно? Что скажете вы, монахи?

Ответы [ 2 ]

11 голосов
/ 07 января 2011

Вы можете использовать встроенную в Perl функцию chmod :

chmod 0755, $fileName;
4 голосов
/ 07 января 2011

Вы можете установить режим при первом создании файла.

use Fcntl;
sysopen my $fh, $filename, O_WRONLY|O_CREAT|O_EXCL, 0777;
# instead of
#open my $fh, '>', $filename;

Режим 0777 будет & с вашим текущим umask.

...