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
如没有意外,安装成功,看看现在的版本
- # perl -v
- This is perl 5, version 14, subversion 1 (v5.14.1) built for x86_64-linux
- Copyright 1987-2011, 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.
看看安装的位置
- # ll /usr/bin/perl
- -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下安装过的模块需要重新再安装一下,嘿嘿