关于perl的运行环境

chennut0802 2011-11-29 10:33:07
大家好,请问两个问题:
问题一,我在linux按照一下这种方法安装好Perl之后,发现Perl只能在/usr/bin/下面运行,而不能在其他路径上运行,请问是什么?
安装方法:
1、取得最新版本的 perl,当前版本为 5.6.0,即 stable.tar.gz.

2、解文件包:

gunzip stable.tar.gz
tar xvf stable.tar

得到目录 perl-5.6.0

3、在目录 perl-5.6.0 下安装 perl:
rm -f config.sh Policy.sh
sh Configure -de
make
make test
make install

问题二,我在windows 上面安装了ActivePerl-5.14,发现环境变量已经配置好了,写了一个hello world的myPerl.pl文件。在该目录执行的时候,用命令“perl myPerl.pl”,系统提示“'perl' 不是内部或外部命令,也不是可运行的程序
或批处理文件。”。但是用命令“myPerl.pl”却能够运行,请问这是为什么呢?

请大家分别讨论以上两个问题。谢谢!
...全文
882 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
chennut0802 2011-11-30
  • 打赏
  • 举报
回复
learning perl我看了前边80多页了,但是没有这方面环境配置的介绍啊?
fibbery 2011-11-29
  • 打赏
  • 举报
回复
一般来说,path环境变量的修改后,命令行终端是不能及时生效的,需要重新打开命令行终端(windows下是cmd),对于Linux我想也可能类似,但我没有遇到你的问题,也无从考究,我使用的都已经安装好了!

在windows上,系统注册了pl扩展名后,系统知道如何打开该文件,所以,你执行myperl.pl是可以运行的。
fibbery 2011-11-29
  • 打赏
  • 举报
回复
注销计算机,重新登录!
ccdbg 2011-11-29
  • 打赏
  • 举报
回复
./myPerl 会根据 #!/usr/perl 这一行来执行 /usr/perl ,这跟环境变量无关
如果 /usr/perl 这个可执行文件不存在 ./myPerl 就报错了

看看learning perl 及 shell方面的书吧
chennut0802 2011-11-29
  • 打赏
  • 举报
回复
非常感谢ccdbg。请问为什么我设置了环境变量没有起作用呢?
ccdbg 2011-11-29
  • 打赏
  • 举报
回复
ln --help 或 man ln 或 info ln
ccdbg 2011-11-29
  • 打赏
  • 举报
回复
which perl 到底显示perl在哪???
如果输出为 /usr/bin/perl 那就 /usr/bin/perl -v 确认下,能输出版本信息 perl路径就是这个
想程序以 #!/usr/perl 开头就 ln -s /usr/bin/perl /usr/perl 一下就可以了
chennut0802 2011-11-29
  • 打赏
  • 举报
回复
另外,请问“ln -s /usr/bin/perl /usr/perl”这个命令是不是拷贝执行权的意思?如果要搜索这类命令的资料,关键字是什么呢?谢谢!
chennut0802 2011-11-29
  • 打赏
  • 举报
回复
5楼的朋友,我输入了命令:“/usr/perl -v”,系统提示“-bash: /usr/perl: 没有那个文件或目录”。但是我在某些目录可以执行perl程序,这个问题说明什么呢?非常感谢您的提点!
ccdbg 2011-11-29
  • 打赏
  • 举报
回复
你得保证/usr/perl为可执行程序而不是目录,命令行下试试
/usr/perl -v
能看见输出信息就没问题

ps:
如果which perl 命令得到的是 /usr/bin/perl ,要转移到 /usr 下,只要做个符号链接就可以了:
ln -s /usr/bin/perl /usr/perl
然后你之前的代码就对了,myPerl具有可执行权的话 ./myPerl 不需要perl在PATH里
chennut0802 2011-11-29
  • 打赏
  • 举报
回复
谢谢大家,问题二解决了。但是问题一还是没有解决。我在linux安装完ActivePerl以后,在/usr/bin/可以执行perl。但是我把程序转移到/usr/,并且把环境变量PATH设置为:
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/usr.在这种环境下,仍然执行不了程序,系统提示“./myPerl: /usr/perl: bad interpreter: 没有那个文件或目录”。
请问大家,为什么?
源代码如下:

#!/usr/perl

print "hello, world! ";
print 6 x 7;
print "\n";

ccdbg 2011-11-29
  • 打赏
  • 举报
回复
linux 下 which perl 能找到perl不?找不到就在PATH里添加你的perl路径
话说perl都到5.14版了,你还在装5.6?

windows下安装后重新打开cmd就可以了

37,744

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧