在C#应用程序内执行时,Perl脚本无法调用另一个perl脚本

时间:2013-06-10 17:52:51

标签: c# perl

我有在C#中调用的perl脚本

perlStartInfo.Arguments = "C:\\c_sharp\\app\\test.pl"; 

现在test.pl需要另一个包含其他函数的perl脚本。

require 'func.pl';

但是当执行require行时,C#会给出异常。如果我发表评论“require'func.pl';”然后C#应用程序不会抱怨。

test.pl在C#之外完美运行。

我应该做些什么更改,以便test.pl在C#应用程序中运行时没有错误,并且还调用func.pl。

后续问题 - 在生产服务器中部署构建时,是否必须处理perlStartInfo.Arguments中指定的路径。

1 个答案:

答案 0 :(得分:0)

我最终做的是将所需文件所在文件夹的路径作为输入参数传递给main.pl文件。

在main.pl文件中,我添加了以下行

$ lib_path = File :: Spec-> catfile($ ARGV [3]);

推送@ INC,$ lib_path;

解决了这个问题。