首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在中perl $filename与./$filename

在中perl $filename与./$filename
EN

Stack Overflow用户
提问于 2013-05-30 15:12:03
回答 2查看 100关注 0票数 2

学生实习在学校的Linux系统上工作,带着另一个问题回来。有关背景,请阅读以下问题:(How to test an HTTP header value using LWP::UserAgent)。

在从事其他项目之后,我在这方面取得了更大的进展。我刚刚注意到的一件事是,如果我使给定的脚本可执行(使用chmod),我将不再得到我在第一个问题中提到的下载错误。奇怪的是,如果我以perl $filename的身份运行该文件,就会得到一个模糊的、毫无帮助的下载错误,而如果我以./$filename的身份运行它,它就能正常工作。

有人知道为什么吗?请尽管要求更多的澄清,但希望阅读我的另一个问题将有助于这一点。谢谢!

编辑:我道歉!这个问题在我的脑海中仍未解决(我将研究潜在的路径问题),尽管我可以通过./script.pl找到解决办法。以下是试图获取文件时返回的确切错误消息:

代码语言:javascript
复制
500 Can't connect to $url.org:443 (SSL connect attempt failed with unknown error error:00000000:lib(0):func(0):reason(0))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-30 15:14:38

使用perl foo将使用在$PATH中找到的第一个perl运行foo

使用./foo将使用脚本的第一行应该运行的任何内容运行foo (例如,#!/opt/perlbrew/perls/perl-5.16.2/bin/perl -w)。

使用不同的版本(以及模块的版本)可以提供不同的结果,就像在不同的命令行开关中运行一样。

票数 11
EN

Stack Overflow用户

发布于 2013-05-30 16:14:50

没有太多的信息需要继续下去;-)但是,考虑到这个问题,考虑到您之前在(How to test an HTTP header value using LWP::UserAgent)上发布的内容,您似乎至少有可能加载不同版本的LWP的SSL库(Crypt::SSLeay)。这可能发生,因为许多事情取决于您正在使用的路径和/或命令行开关。例如,Crypt::SSLeay包含一个C代码库,需要重新编译该模块和perl的当前版本。也许您是通过运行./script.pl来加载正确的版本(不小心),而当您轻率地键入perl script.pl时,加载的版本可能是坏的?

如果你知道发生了什么事,请更新你的问题:-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16839805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档