我想要一些可以在脚本中调用的函数,但它可以在命令行中发挥作用。所以我创建了一个小模块,但出现错误。
一个简单的演示示例:
在当前目录中,我有文件 Foo.pm
use strict;
use warnings;
package Foo;
sub get_string {
return "foo+bar";
}
然后在命令行中我这样做:
$ perl -I. -MFoo::get_string
我得到:
Can't locate Foo/get_string.pm in @INC (you may need to install the
Foo::get_string module)
我在这里做错了什么?
最佳答案
首先,更改 Foo.pm
以避免 Foo.pm did not return a true value
错误。在文件末尾添加 1;
:
use strict;
use warnings;
package Foo;
sub get_string {
return "foo+bar";
}
1;
接下来,-MFoo::get_string
语法可能需要一个名为 Foo::get_string
的模块,但您的模块只是简单地命名为 Foo
.
以下内容对我有用:
$ perl -I. -MFoo -E 'say Foo::get_string'
foo+bar
引用perlrun对于-M
。
如果您需要将参数传递给子:
$ perl -I. -MFoo -E 'say Foo::get_string(5)'
关于perl - 从 CLI 的模块调用 Perl 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76908933/