在Perl中,如何将生成的文件标记为可执行文件?

时间:2011-01-07 06:01:55

标签: perl file executable

在我的perl脚本中,我创建了一个shell脚本(用于对长模拟的结果进行后处理的东西)。我想将此文件标记为可执行文件。

$fileName = 'postProcess.tcsh';

显然,我可以做到以下几点:

system("chmod +x $fileName");

但我很好奇是否存在避免系统调用的解决方案。换句话说,文件模块中是否有方法?你说僧人说什么?

2 个答案:

答案 0 :(得分:11)

您可以使用Perl的内置chmod功能:

chmod 0755, $fileName;

答案 1 :(得分:4)

您可以在首次创建文件时设置模式。

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

0777模式将&与您当前的umask一起使用。