在我的perl脚本中,我创建了一个shell脚本(用于对长模拟的结果进行后处理的东西)。我想将此文件标记为可执行文件。
$fileName = 'postProcess.tcsh';
显然,我可以做到以下几点:
system("chmod +x $fileName");
但我很好奇是否存在避免系统调用的解决方案。换句话说,文件模块中是否有方法?你说僧人说什么?
答案 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
一起使用。