我创建了一个简单的talend perl作业,以从Excel文件中提取数据并将其放在MySQL表中。当我在Talend Studio 4.1.1中运行它时,这正常工作。

问题是当我导出工作时。我试图这样运行:

perl -ilib proj.job_import_prods_0.1.pl - -Context =默认值-Context_Param File_path =“/home/home/antoniocs/programming/programming/file.xls” $*

这给了我以下错误:

无法在@inc中找到io/scalar.pm(@inc contains:/home/home/antoniocs/programming/lib/etc/perl/usr/local/lib/lib/perl/5.10.1/usr/usr/usr/local/share/share/perl/ 5.10.1/usr/lib/perl5/usr/share/perl5/usr/lib/perl/5.10/usr/share/share/perl/5.10/usr/locar/local/lib/site_perl。) 171.开始失败 - 编译在lib/ole/storage_lite.pm行中流产。 。

我已经将parseexcel.pm int放在作业文件夹中。 talend不会自动将必要的文件添加到作业文件夹中?

注意:导出作业时,我选中了“导出依赖项”框,请注意:我不是Perl程序员。

有帮助吗?

解决方案

您需要找到路径 talend 存储Perl模块(您不能只移动文件)。一旦知道了,就可以创建一个 PERL5LIB 环境变量要告诉 perl 它要查找的模块存储的位置:

PERL5LIB=/path/to/modules perl -Ilib proj.job_import_prods_0.1.pl --context=Default --context_param file_path="/home/antoniocs/programming/file.xls" $*

快速 find /where/talend/lives -name Scalar.pm 应该给您一个线索(您想要目录之前 IO)。如果您最需要多个目录,则可以将它们分开 : 就像在 PATH 环境变量。

另外,您可以从软件包管理器中安装所需的模块(提示,redhat样式框使用perl-io-scalar和debian样式盒之类的名称使用诸如libio-scalar-perl之类的名称)或 CPAN.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top