【发布时间】:2019-04-04 05:55:27
【问题描述】:
我有一个名为 /root/kart/test.pl 的库 perl 脚本,这个库脚本作为 main.pl 脚本的一部分被导入。
main.pl的示例内容:
#!/usr/bin/perl
use strict;
use warnings;
if(-f "/root/kart/test.pl" )
{
require "/root/kart/test.pl";
}
our @array1;
our @array2;
test.pl的示例内容:
#!/usr/bin/perl
our @array1=qw(one two three);
our @array2=qw(abc xyz);
.
.
1;
以前,库 perl 脚本 /root/kart/test.pl 在本地可用,main.pl 工作正常。现在此脚本将仅在远程节点上可用,但在本地不可用。
如何在 perl 中使用 "require" 从远程服务器导入 perl 脚本
【问题讨论】:
-
test.pl是一个模块(通常具有.pm扩展名),带有一组子例程等,还是真正的可执行脚本? -
@zdim 它不是一个模块,只是一个脚本,它只包含具有一些预定义值的数组和变量。
-
How to import a perl script using "require" from remote server in perl?从服务器导入脚本时收到什么错误信息? -
@kart1657 如果那个脚本没有真正做任何事情,你能不能把它变成一个简单的模块?它会让一切变得更好。然后,您仍然需要将该文件从该远程主机获取到您运行的位置,但是您将处理一个普通模块,该模块可以是
used(或required,如果您在运行时从使用它的脚本)。 -
听起来您真正想要的是一个可以存储脚本配置数据的地方。您是否尝试过查看 JSON 对象?语法与 Perl 的 arrayrefs 和 hashrefs 非常相似,它们很容易加载到 Perl 中(参见 JSON on metacpan )。 JSON 是使用 HTTP 请求向服务器发送/从服务器发送的,您可以将数据存储在文本文件中或使用像 CouchDB 这样的专用服务。