CentOS 系统自带的Perl版本是5.8.8,已经很老了,哥今天折腾一下,把它升级到最新版本。
系统初始状态下的Perl版本
# perl -v
This is perl, v5.8.8 built for x86_64-linux-thread-multi
Copyright 1987-2006, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
看一下perl安装在哪
# which perl
/usr/bin/perl
# ll /usr/bin/perl
-rwxr-xr-x 2 root root 19200 Jan 21 2009 /usr/bin/perl
接下来,准备升级操作,下载最新的perl源码包到本地来
http://www.cpan.org/src/5.0/perl-5.14.1.tar.gz
安装
# tar perl-5.14.1.tar.gz
# cd perl-5.14.1
# ./Configure --help
Usage: Configure [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
[-U symbol] [-U symbol=] [-A command:symbol...]
-d : use defaults for all answers.
-e : go on without questioning past the production of config.sh.
-f : specify an alternate default configuration file.
-h : print this help message and exit (with an error status).
-r : reuse C symbols value if possible (skips costly nm extraction).
-s : silent mode, only echoes questions and essential information.
-D : define symbol to have some value:
-D symbol symbol gets the value 'define'
-D symbol=value symbol gets the value 'value'
common used examples (see INSTALL for more info):
-Duse64bitint use 64bit integers
-Duse64bitall use 64bit integers and pointers
-Dusethreads use thread support
-Dinc_version_list=none do not include older perl trees in @INC
-DEBUGGING=none DEBUGGING options
-Dcc=gcc choose your compiler
-Dprefix=/opt/perl5 choose your destination
-E : stop at the end of questions, after having produced config.sh.
-K : do not use unless you know what you are doing.
-O : let -D and -U override definitions from loaded configuration file.
-S : perform variable substitutions on all .SH files (can mix with -f)
-U : undefine symbol:
-U symbol symbol gets the value 'undef'
-U symbolsymbol= symbol gets completely empty
e.g.: -Uversiononly
-A : manipulate symbol after the platform specific hints have been applied:
-A append:symbol=value append value to symbol
-A symbol=value like append:, but with a separating space
-A define:symbol=value define symbol to have value
-A clear:symbol define symbol to be ''
-A define:symbol define symbol to be 'define'
-A eval:symbol=value define symbol to be eval of value
-A prepend:symbol=value prepend value to symbol
-A undef:symbol define symbol to be 'undef'
-A undef:symbol= define symbol to be ''
e.g.: -A prepend:libswanted='cl pthread '
-A ccflags=-DSOME_MACRO
-V : print version number and exit (with a zero status).
找到安装编译参数
# ./Configure -des -Dprefix=/usr
各参数的含义上面已有
# make && make install
如没有意外,安装成功,看看现在的版本
This is perl 5, version 14, subversion 1 (v5.14.1) built for x86_64-linux
Copyright 1987-2011, Larry Wall
看看安装的位置
-rwxr-xr-x 2 root root 1427485 Jul 13 14:06 /usr/bin/perl
我们这是覆盖安装,替换了原先系统中的原始版本。
新的版本中增加了say函数,让我们写一个简单的脚本来测试一下,看有没有问题
#!/usr/bin/perl -w
use strict;
use 5.14.1;
say "hello,world";
output:
perl henry.pl
hello,world
正确,大功告成,还不赶紧去了解Perl 5.14.1的新特性。哈哈,^__^
注:这样,似乎有一个问题,之前在Perl 5.8.8下安装过的模块需要重新再安装一下,嘿嘿
本文转自dongfang_09859 51CTO博客,原文链接:http://blog.51cto.com/hellosa/610052,如需转载请自行联系原作者