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

发布于 2024-10-10 23:28:46 字数 267 浏览 2 评论 0原文

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

$fileName = 'postProcess.tcsh';

显然,我可以执行以下操作:

system("chmod +x $fileName");

但我很好奇是否有一种解决方案可以避免系统调用。换句话说,File 模块中可能有一个方法吗?诸位僧人怎么说?

In my perl script, I create a shell script (something to post-process the results of a long simulation). I'd like to mark this file as executable.

$fileName = 'postProcess.tcsh';

Clearly, I could do the following:

system("chmod +x $fileName");

But I'm curious if there is a solution which avoids the system call. In other words, would there be a method within the File module perhaps? What say you monks?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟火散人牵绊 2024-10-17 23:28:46

您可以使用 Perl 的内置 chmod 函数:

chmod 0755, $fileName;

You can use Perl's builtin chmod function:

chmod 0755, $fileName;
烟燃烟灭 2024-10-17 23:28:46

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

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

0777 模式将为 & 以及您当前的 umask

You can set the mode when first creating the file.

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

The 0777 mode will be & with your current umask.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文