Perl -M 不会找到模块的硬编码路径
Perl -M will not find a hardcoded path to a module
背景
在 chsell 脚本中,我从 perl 模块调用一个子例程并将其结果保存到 following manner:
中的一个变量
set result =`perl -M/some/hard/coded/path/lib.pm=theFunction -e 'theFunction( $A_VARIABLE_ARGUMENT )'`
尽管我明确指定了模块,但我的脚本抛出了这个错误:
Module name required with -M option
问题
如何使用 perl 的 -M 选项调用硬编码模块?
你不能,因为 -M
选项通过像 Foo::Bar
-> Foo/Bar.pm
.
一样翻译成 use statement which takes only module names, not paths. However, you can add the path to be the first module search path using the -I
option. Modules are searched relative to each search path
perl -I/home/hard/coded/path -Mlib=theFunction
请注意,您绝对不应该调用您的模块或包 lib
,因为这是一个重要的核心模块(实际上,-I
在这里使用的就是它)。
背景
在 chsell 脚本中,我从 perl 模块调用一个子例程并将其结果保存到 following manner:
中的一个变量set result =`perl -M/some/hard/coded/path/lib.pm=theFunction -e 'theFunction( $A_VARIABLE_ARGUMENT )'`
尽管我明确指定了模块,但我的脚本抛出了这个错误:
Module name required with -M option
问题
如何使用 perl 的 -M 选项调用硬编码模块?
你不能,因为 -M
选项通过像 Foo::Bar
-> Foo/Bar.pm
.
-I
option. Modules are searched relative to each search path
perl -I/home/hard/coded/path -Mlib=theFunction
请注意,您绝对不应该调用您的模块或包 lib
,因为这是一个重要的核心模块(实际上,-I
在这里使用的就是它)。