Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl。从远程服务器获取文件,仅核心模块_Perl_File_Fetch - Fatal编程技术网

Perl。从远程服务器获取文件,仅核心模块

Perl。从远程服务器获取文件,仅核心模块,perl,file,fetch,Perl,File,Fetch,我需要帮助:有没有办法只使用Perl5.8.8的核心模块从远程服务器获取文件?文件::Fetch仅从5.9版成为核心模块。您可以使用: my $wgetoutput = `wget "$myFileToGet"`; backticks`中的内容将被赋予默认shell,因此您可以调用任何您想要的内容,并且在那里是允许的。 警告:$myFileToGet中可能有类似&&rm-rf*的东西,所以别忘了消毒 这件事一直在发生。看看经典。如果您能够创建和运行一个Perl脚本,那么您还可以将一个模块放在本

我需要帮助:有没有办法只使用Perl5.8.8的核心模块从远程服务器获取文件?文件::Fetch仅从5.9版成为核心模块。

您可以使用:

my $wgetoutput = `wget "$myFileToGet"`;
backticks`中的内容将被赋予默认shell,因此您可以调用任何您想要的内容,并且在那里是允许的。
警告:$myFileToGet中可能有类似&&rm-rf*的东西,所以别忘了消毒

这件事一直在发生。看看经典。如果您能够创建和运行一个Perl脚本,那么您还可以将一个模块放在本地目录中并使用它。只使用核心模块的要求完全是人为的

在您的情况下,'s getstore函数将执行您想要的操作。虽然从技术上讲LWP::Simple不是核心,但默认情况下,许多Perl发行版都包含LWP::Simple。你可能已经有了

更新:那么,您想在1000台服务器上执行此操作?无需在每台服务器上手动安装模块。要下载并安装模块,您需要进行一些调整,以使CPAN在本地而不是在根模块库中安装它。此外,Leon Timmermans建议对模块进行封装也是另一种选择

如果你真的不想这样做,那么基本上答案是否定的:没有简单的方法通过HTTP来获取远程文件,既没有使用适当的模块,也没有系统命令,我没有考虑编写自己的HTTP客户端是一个简单的方法,但是如果它对你有用的话,那就没问题了。 我看到的唯一其他可能的解决方案是采用不同的方法解决您的问题,例如:

在单个位置使用脚本获取文件,然后分发 它通过FTP连接到所有1000台服务器。 或者,将文件放在FTP服务器上,然后使用简单的Perl 每个服务器上的脚本,以通过FTP获取它。
正如丹已经说过的,是的,即使你可以使用CPAN。他的链接没有提到的一种方法是,使用分布将其作为普通CPAN编写,然后再使用它。Fatpacker将一个脚本与其所有纯perl依赖项相结合,创建了一个易于分发的文件。

Net::FTP是随perl v5.7.3发布的。在远程服务器上没有FTP服务器的情况下,如何使用Net::FTP获取文件?也许您应该详细说明获取的含义。远程服务器上有一个文件,可通过http获取,我需要从这个服务器下载这个文件,只使用Perl5.8.8的核心模块。好吧,似乎LWP和HTTP::UserAgent都不在PerlV5.8.8的核心中。我肯定有东西存在,但我什么也找不到。Perl 5.8已经有10年的历史了,所以情况已经发生了变化。谢谢,我知道这一点,但不能使用wget by condition=您知道严格从Perl下载文件的另一种方法吗?5.8.8那就不知道了,对不起。我以前从未使用过这样的受限环境,我使用过的最小系统是GNUblin/不幸的是,我需要在1000多台服务器上下载这个文件,而我无法在上面安装一些模块。我需要在centos 5上运行简单的tiny perl脚本,无需外部系统调用…@user1759997,我已更新了我的答案以解决您的异议。我找到了另一个答案:使用IO::Socket::INET我编写了简单的tiny http客户端。;-IO::Socket是自5.3以来的核心模块