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 在这里使用的就是它)。