Linux 从命令行运行Talend perl作业时缺少文件

Linux 从命令行运行Talend perl作业时缺少文件,linux,perl,talend,Linux,Perl,Talend,我创建了一个简单的talend perl作业,从excel文件中提取数据并将其放入mysql表中。 当我在talend studio 4.1.1中运行它时,它工作得很好 问题是当我导出工作时。我试着这样运行它: perl-Ilib 项目作业\导入\产品\ 0.1.pl --context=Default--context_param file_path=“/home/antoniocs/programming/file.xls” $* 这给了我以下错误: 在@INC中找不到IO/Scalar.p

我创建了一个简单的talend perl作业,从excel文件中提取数据并将其放入mysql表中。 当我在talend studio 4.1.1中运行它时,它工作得很好

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

perl-Ilib 项目作业\导入\产品\ 0.1.pl --context=Default--context_param file_path=“/home/antoniocs/programming/file.xls” $*

这给了我以下错误:

在@INC中找不到IO/Scalar.pm (@INC包含: /home/antoniocs/programming/lib /etc/perl/usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5/usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl.)位于 lib/OLE/Storage_Lite.pm第171行。 BEGIN失败--编译在处中止 lib/OLE/Storage_Lite.pm第171行。 在请求中编译失败 lib/Spreadsheet/ParseExcel.pm第18行。 BEGIN失败--编译在处中止 lib/Spreadsheet/ParseExcel.pm第18行。 在请求中编译失败 项目工作\导入\产品\ 0.1.pl第568行。 BEGIN失败--编译在处中止 项目工作\导入\产品\ 0.1.pl第568行

我已经将ParseExcel.pm int置于作业文件夹中的lib文件夹中。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" $*
快速查找/where/talend/lifes-name Scalar.pm应该会给您一个线索(您希望在
IO
之前找到目录)。如果您最终需要多个目录,可以使用
将它们分开,就像在
路径
环境变量中一样


或者,您可以从包管理器安装所需的模块(提示,RedHat样式框使用perl IO Scalar之类的名称,Debian样式框使用libio Scalar perl之类的名称),或者。

Module
IO::Scalar
存在于发行版中,因此RPM名称为,而deb名称为。谢谢!这些文件都在talend目录中。我只是把它们复制到了job lib文件夹中,一切都很好:)再次感谢(我也在talend论坛上发布了这篇文章,没有人回应。GO STACKOVERFLOW)