📜  Linux管理员-为CentOS Linux设置Perl

📅  最后修改于: 2020-10-31 13:31:51             🧑  作者: Mango


Perl已经存在很长时间了。它最初被设计为用于分析文本文件的报告语言。随着流行度的提高,Perl添加了模块支持或CPAN,套接字,线程和其他功能强大的脚本语言所需的功能。

与PHP, Python或Ruby相比,Perl的最大优点是:只需花费很少的精力即可完成工作。 Perl的这种哲学并不总是意味着它以正确的方式完成工作。但是,对于Linux上的管理任务,Perl被认为是脚本语言的首选。

Perl相对于Python或Ruby的一些优势是-

  • 强大的文字处理

  • Perl使编写脚本变得既快捷又肮脏(通常,Perl脚本比Python或Ruby中的等效脚本短几十行)

  • Perl可以做任何事情(几乎)

Perl的一些缺点是-

  • 语法可能会令人困惑

  • Perl中的编码风格可能是独特的,并且会阻碍协作

  • Perl不是真正的面向对象

  • 通常,使用Perl时,没有太多考虑标准化和最佳实践的方法。

在决定使用Perl, Python还是PHP时;应该提出以下问题-

  • 该应用程序是否需要版本控制?
  • 其他人是否需要修改代码?
  • 其他人需要使用此应用程序吗?
  • 该应用程序是否可以在其他机器或CPU体系结构上使用?

如果对上述所有问题的回答均为“否”,那么Perl是一个不错的选择,并且可以根据最终结果加快处理速度。

提到了这一点,让我们将CentOS服务器配置为使用最新版本的Perl。

在安装Perl之前,我们需要了解对Perl的支持。正式地,仅在最后两个稳定版本中才支持Perl。因此,我们要确保开发环境与CentOS版本隔离。

隔离的原因是:如果有人向CentOS社区发布了Perl中的工具,则很可能会对其进行修改以与CentOS一起在Perl上运行。但是,我们也希望安装用于开发目的的最新版本。像Python一样,CentOS发行的Perl专注于可靠性而不是前沿。

让我们检查一下CentOS 7上当前的Perl版本。

[root@CentOS]# perl -v 
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi

我们当前正在运行Perl 5.16.3。撰写本文时,最新版本是: perl-5.24.0

我们绝对希望升级我们的版本,以便能够在我们的代码中使用最新的Perl模块。幸运的是,有一个很棒的工具可以维护Perl环境并保持我们的CentOS版本的Perl孤立。它被称为perlbrew

让我们安装Perl Brew。

[root@CentOS]# curl -L https://install.perlbrew.pl | bash 
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current 
                             Dload  Upload   Total   Spent    Left  Speed 
100   170  100   170    0     0    396      0 --:--:-- --:--:-- --:--:--   397 
100  1247  100  1247    0     0   1929      0 --:--:-- --:--:-- --:--:--  1929

现在已经安装了Perl Brew,现在让我们为最新版本的Perl创建一个环境。

首先,我们将需要当前安装的Perl版本来引导perlbrew安装。因此,让我们从CentOS存储库中获取一些需要的Perl模块。

–如果可用,我们始终希望在CentOS Perl安装中使用CentOS Perl模块而不是CPAN。

步骤1-安装CentOS Perl Make :: Maker模块。

[root@CentOS]# yum -y install perl-ExtUtils-MakeMaker.noarch

步骤2-安装最新版本的perl。

[root@CentOS build]# source ~/perl5/perlbrew/etc/bashrc
[root@CentOS build]# perlbrew install -n -j4 --threads perl-5.24.1

我们为Perl安装选择的选项是-

  • n-无测试

  • j4-为安装例程并行执行4个线程(我们使用的是四核CPU)

  • 线程-为Perl启用线程支持

成功完成安装后,让我们切换到最新的Perl环境。

[root@CentOS]# ~/perl5/perlbrew/bin/perlbrew use perl-5.24.1

A sub-shell is launched with perl-5.24.1 as the activated perl. Run 'exit' to finish it.

[root@CentOS]# perl -v

This is perl 5, version 24, subversion 1 (v5.24.1) built for x86_64-linuxthread-multi

(with 1 registered patch, see perl -V for more detail)

Copyright 1987-2017, 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.

[root@CentOS]#

简单的perl脚本打印在我们的perlbrew环境中运行的perl版本-

[root@CentOS]# cat ./ver.pl  
#!/usr/bin/perl
print $^V . "\n";
[root@CentOS]# perl ./ver.pl  
v5.24.1 
[root@CentOS]#

一旦安装了perl,我们就可以用perl brew的cpanm加载cpan模块-

[root@CentOS]# perl-brew install-cpanm

现在,让我们使用cpanm安装程序在我们的当前Perl版本5.24.1的perl brew中制作LWP模块。

步骤1-切换到我们当前的Perl版本的上下文。

[root@CentOS ~]# ~/perl5/perlbrew/bin/perlbrew use perl-5.24.1

使用perl-5.24.1作为激活的perl启动一个子外壳。运行“退出”完成操作。

[root@CentOS ~]#

步骤2-安装LWP用户代理Perl模块。

[root@CentOS ~]# ~/perl5/perlbrew/bin/cpanm -i LWP::UserAgent

步骤3-现在让我们使用新的CPAN模块测试我们的Perl环境。

[root@CentOS ~]# cat ./get_header.pl  
#!/usr/bin/perl 
use LWP; 
my $browser = LWP::UserAgent->new(); 
my $response = $browser->get("http://www.slcc.edu/"); 
unless(!$response->is_success) { 
   print $response->header("Server"); 
}

[root@CentOS ~]# perl ./get_header.pl  
Microsoft-IIS/8.5 [root@CentOS ~]#

你有它! Perl Brew使隔离Perl环境变得轻而易举,并且可以将Perl视为最佳实践。