2

在学校的 Linux 系统上工作的实习生,带着另一个问题回来了。对于背景,请阅读这个问题:(如何使用 LWP::UserAgent 测试 HTTP 标头值)。

在从事其他一些项目之后,我在这方面取得了更大的进展。我碰巧注意到的一件事是,如果我使给定的脚本可执行(使用 chmod),我将不再收到我在第一个问题中提到的下载错误。奇怪的事情(对我来说)是,如果我运行文件时perl $filename出现模糊、无用的下载错误,而如果我运行它却./$filename可以正常工作。

有谁知道这是为什么?随时要求更多澄清,但希望阅读我的其他问题会有所帮助。谢谢!

编辑:我的道歉!尽管我通过 ./script.pl 有一个解决方法,但我仍然没有解决这个问题(我将研究潜在的路径问题)。以下是尝试获取文件时返回的确切错误消息:

500 Can't connect to $url.org:443 (SSL connect attempt failed with unknown error error:00000000:lib(0):func(0):reason(0))
4

2 回答 2

11

Usingperl foofoo与第一个perl在 中找到的一起运行$PATH

Using./foofoo与脚本的第一行所说的任何内容一起运行(例如#!/opt/perlbrew/perls/perl-5.16.2/bin/perl -w)。

使用不同的版本(和模块的版本)会产生不同的结果,就像使用不同的命令行开关运行一样

于 2013-05-30T15:14:38.303 回答
0

没有太多信息可以继续;-) 但是,在您之前发布的(如何使用 LWP::UserAgent 测试 HTTP 标头值)的上下文中考虑到这个问题,至少看起来您正在加载不同的LWP 的 SSL 库 ( Crypt::SSLeay) 的版本。这可能会发生,因为许多事情取决于您使用的路径和/或命令行开关。例如,Crypt::SSLeay包含需要为当前版本的模块和 perl 重新编译的 C 代码库。也许您正在通过运行加载正确的版本(意外地),./script.pl而当您愉快地键入时却加载了一个损坏的版本perl script.pl

如果您发现发生了什么,请更新您的问题:-)

于 2013-05-30T16:14:50.663 回答