我需要帮助:有没有办法只使用perl 5.8.8的核心模块从远程服务器获取文件? File :: Fetch仅从5.9成为核心模块。
答案 0 :(得分:4)
这一直出现。看看经典yes, even you can use CPAN。如果您能够创建和运行Perl脚本,那么您还可以将模块放在本地目录中并使用它。仅使用核心模块的要求完全是人为的。
在您的情况下,LWP::Simple
的getstore()
功能会执行您想要的操作。虽然它在技术上不是核心,但默认包含LWP::Simple
许多Perl发行版。你可能已经拥有它了。
更新:所以,您想在1000台服务器上执行此操作吗?无需在每台服务器上手动安装模块。 Use CPAN programmatically下载并安装您需要的模块(需要进行一些调整才能让CPAN在本地而不是在根模块库中安装它)。此外,Leon Timmermans建议对模块进行加脂处理是另一种选择。
如果你真的不想这样做,那么基本上答案是否定的:没有简单的方法通过HTTP使用相应的模块或系统命令获取远程文件(I不考虑编写自己的HTTP客户端是一个简单的方法,但如果它适用于你就没问题了。)。
我看到的唯一其他潜在解决方案是针对您的问题的不同方法,例如:
答案 1 :(得分:2)
正如Dan已经说过,是的,即使你可以使用CPAN 。他的链接没有提及的一种方法是将其写为正常的CPAN使用分布,然后fatpack。 Fatpacker将脚本与其所有(纯perl)依赖项组合在一起,创建一个易于分发的文件。
答案 2 :(得分:1)
您可以使用:
my $wgetoutput = `wget "$myFileToGet"`;
反引号(`)中的东西将被赋予默认shell,因此您可以在那里调用任何您想要的(并且被允许)。 警告:$ myFileToGet可能会有“&& rm -rf *”之类的东西,所以不要忘记消毒!