当我尝试运行外部Perl脚本时,如何修复“权限被拒绝”?

时间:2010-10-04 11:36:05

标签: perl shellexecute

system("logscr.ply ");

我得到的错误是:

Can't exec "logscr.ply": Permission denied at eal.ply line 3

为什么我会收到错误,我该如何解决?

2 个答案:

答案 0 :(得分:3)

在不知道任何细节的情况下,可能有多种原因:

  • 您的示例代码声明您正在尝试执行“logscr.ply”。最后的空格字符可能会被解析为文件名的一部分。但是,这应该会产生文件未找到的错误。
  • 被调用脚本的保护位可能不允许直接执行。从命令提示符处尝试chmod u+x logscr.ply
  • 您可能无法访问包含logscr.ply的文件夹。确保您具有读取和执行权限(尝试chmod u+r,u+x folder-name)。
  • 被调用脚本可能无法将自身识别为Perl脚本,请尝试system("perl logscr.ply");
  • $ PATH中可能有一个名称相同的文件。在通话中使用绝对路径来防止这种情况(system("perl /some/path/logscr.ply");),不要依赖你的$ PATH变量。

答案 1 :(得分:0)

这是什么平台/操作系统?

可能logscr.ply只是没有设置执行权限。在Linux / Unix上,例如你应该做的

chmod u+x logscr.ply
然后再试一次。

注意:这假设您是logscr.ply的所有者。如果没有,请相应调整。