如何从shell脚本调用Perl函数?

fre*_*ara 4 scripting perl

我在Perl中编写了一个包含某个函数的库,它将有关服务器的信息作为字符串返回.我可以直接从shell调用此函数吗?

我的老板问道:"你能暂时直接从外壳打电话吗?" 因为他说,我认为我应该能够做到,但我该怎么做呢?

Axe*_*man 10

perl -MServerlib=server_information -e 'print server_information()'
Run Code Online (Sandbox Code Playgroud)

另一种方法是这样做,但只有当Serverlib导出server_informationsub时.如果没有,则需要执行以下操作:

perl -MServerlib -e 'print MServerlib::server_information()'
Run Code Online (Sandbox Code Playgroud)


Mar*_*ark 7

由于perl的命令行参数有点难以理解,我将它包装在一个更简单的调用函数的perl脚本中.例如,创建一个serverinfo包含以下内容的脚本:

#!/usr/bin/perl

require 'library.pl';
say library::getServerInformation();
Run Code Online (Sandbox Code Playgroud)

然后运行:

chmod u+x serverinfo
Run Code Online (Sandbox Code Playgroud)

这样做的好处是,如果函数本身发生变化,脚本的输出和参数可以得到纠正.像这样的命令行脚本可以被认为是一个API,在实现更改时不应该更改.