在远程驱动器上运行的perl脚本中的库问题

时间:2012-02-23 16:47:37

标签: perl dll

我正在尝试使用Microsoft HPC在群集上运行脚本。目前我的脚本(和其他必要的文件)在网络驱动器(V :)上的文件夹中。我使用批处理文件执行脚本,该文件使用Net Use命令将网络上的计算机连接到/ foo(Net Use Z:)

当我尝试执行脚本时,我得到了一堆这样的错误:

Can't load 'Z:/lib/auto/IO/IO.dll' for module IO: load_file:The specified module could not be found at C:/perl/perl/lib/XSLoader.pm line 71.
 at Z:/lib/IO.pm line 11
Compilation failed in require at Z:/lib/IO/Handle.pm line 266.
BEGIN failed--compilation aborted at Z:/lib/IO/Handle.pm line 266.
Compilation failed in require at Z:/lib/IO/Seekable.pm line 101.
BEGIN failed--compilation aborted at Z:/lib/IO/Seekable.pm line 101.
Compilation failed in require at Z:/lib/IO/File.pm line 133.
BEGIN failed--compilation aborted at Z:/lib/IO/File.pm line 133.
Compilation failed in require at Z:/lib/FileHandle.pm line 9.
Compilation failed in require at Z:/lib/Spreadsheet/WriteExcel/OLEwriter.pm line 18.
BEGIN failed--compilation aborted at Z:/lib/Spreadsheet/WriteExcel/OLEwriter.pm line 18.
Compilation failed in require at Z:/lib/Spreadsheet/WriteExcel/Workbook.pm line 18.
BEGIN failed--compilation aborted at Z:/lib/Spreadsheet/WriteExcel/Workbook.pm line 18.
Compilation failed in require at Z:/lib/Spreadsheet/WriteExcel.pm line 17.
BEGIN failed--compilation aborted at Z:/lib/Spreadsheet/WriteExcel.pm line 17.
Compilation failed in require at foo.pl line 9.
BEGIN failed--compilation aborted at foo.pl line 9.

当我在本地运行它时,此脚本运行正常。我的目标是让它在HPC集群上远程运行。

我一直在努力寻找新的和本地的图书馆位置,但我发现网上有很多解释对我的能力来说有点神秘。在我的脑海中,将我现有的/ lib文件夹复制到我的远程驱动器(Z :)中就足够了,然后使用'use lib'Z:\ lib;'在我的代码中,但这不起作用。我假设脚本如何与我目前不理解的库交互。

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:2)

我会把它提到答案!如果您在远程计算机上运行perl进程,则Z:驱动器不一定可用。您需要先在net use运行,或者尝试使用完整的UNC路径,例如

use lib '\\\\COMPUTER\root\lib';

(是的,你在开始时需要四个反斜杠来制作两个!但是使用单引号或者它会更糟。)