perl的世界 - Hello World!

之前的博客一直都在专注于分享关于Oracle RAC 的一些知识, 关于RAC的知识肯定还会继续更新下去。但是为了丰富博客内容,以后也想分享一下Perl语言的知识。

在以前的网页开发中,人们经常用C语言或者JAVA语言来开发CGI。但是其实最常用的CGI开发语言是Perl。我曾经在东京工作期间,参与研发的EIP产品就是用Perl实现的,我也有幸接触到了这门语言,也体验到了Perl语言的魅力。

Perl是一种相对古老的语言,但是其功能却异常的强大。后来CGI渐渐淡出了人们的视野,Perl也随之走向衰落。但是Perl作为PHP,Python,Ruby等语言的基本模型,其历史地位不能磨灭。即便时至今日Perl作为一种脚本语言却仍然发挥着非常巨大的作用。其实熟悉Oracle数据库的同学可能会发现,Oracle数据库中的很多脚本或者工具都大量使用到了Perl,比如我们在给RAC打补丁时经常使用的rootcrs.sh,就是调用了rootcrs.pl这个Perl脚本实现的。

if [ $ret = 0 ]
then
   #invalid arguments
   $ECHO "`$ORACLE_HOME/bin/clsecho -p has -f clsrsc -x -m 583` $*"
   print_help_mesg
else
    ROOTCRSPL="$ORACLE_HOME/perl/bin/perl -I$ORACLE_HOME/perl/lib -I$ORACLE_HOME/crs/install -I$ORACLE_HOME/xag $ORACLE_HOME/crs/install/rootcrs.pl"

    $ROOTCRSPL $ALL_ROOTSCRIPT_ARGS
    EXITCODE=$?
    if [ $EXITCODE -ne 0 ]; then
        $ECHO "The command '$ROOTCRSPL $ALL_ROOTSCRIPT_ARGS' execution failed"
        exit $EXITCODE
    fi
fi

其实我们这里面将Perl定义为脚本语言其实是非常不准确的。Perl语言的功能远远超出了脚本语言的定义范畴。Perl语言甚至可以作为面向对象语言使用(虽然Perl语言的面向对象并不像Java那么严谨),这就保证了Perl可以作为大规模程序开发和设计的语言。

Perl 是 Larry Wall 开发的,后来作为一个开源项目又被数千名志愿者合作升级。Perl 是"Practical Extraction and Report Language"的缩写,可翻译为“实用报表提取语言”。它与Unix系的OS有着非常密切的关系。我所安装的Linux中,默认的perl版本是v5.16.3。

[root@node1 install]# uname -r
4.1.12-124.15.4.el7uek.x86_64

[root@node1 install]# which perl
/usr/bin/perl

[root@node1 install]# perl -version

This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
(with 39 registered patches, see perl -V for more detail)

Copyright 1987-2012, 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在Windows当中也是可以使用的。

Perl语言中字符串和数字的数据类型转换是自动进行的,这与C语言和JAVA非常不同,而且Perl语言对字符串操作的相关函数非常简单,其中还大量使用正则表达式,所以Perl语言非常适合于文本文件的处理。

另外,Perl语言对于数据类型并没有非常严格的界定,使得Perl与C和Java对于不同数据类型需要进行转换相比要简单很多。

Perl的语言风格与C语言类似,同时又有shell的一些影子。但是编写Perl语言程序,往往能让程序员体会到程序的美感。(这也许是我个人的喜好问题。-。-!)

Perl作为一种脚本语言是不需要编译的。所以Perl的运行速度非常快。Perl语言对文本文件的处理能力进行了专门的设计,所以Perl语言在处理文本文件时的性能是非常优异的。但是其对数值计算方面的性能却并没有C语言强大。对于数值计算性能要求很高的处理,我们可以通过C语言来实现。是的,在perl语言中能够很容易调用C语言编写的代码。
另外Perl语言非常节省内存,其GC处理也是自动完成的,不需要程序编写人员考虑GC处理问题。

另外Perl作为一个开源项目,有很多志愿者开发了众多好用的包。大家可以通过CPAN网站进行下载。

https://www.cpan.org/

好了,介绍了这么多,让我们开始Perl语言的第一个程序–Hello World!吧。

#! /usr/bin/perl
# 第一个程序。

#以下两句是用来对程序进行严格检验。
use strict;
use warnings;

#函数调用
print_hw();

#函数定义
sub print_hw {
    print "Hello World!\n";
}

下面我们来验证perl语法是否有问题。

[root@node1 ~]# perl -wc helloworld.pl
helloworld.pl syntax OK

然后我们来执行这个perl脚本。

[root@node1 ~]# perl helloworld.pl
Hello World!

今天先分享到这里,晚安。

上一篇:Linux(Ubuntu/CentOS)安装splunkforwarder步骤


下一篇:[ Perl ] 对文本文件进行行列翻转