正式学习Perl有一星期了,今天终于将Perl语言入门(小骆驼书)给看完了。也对这个Unix起源的轻量级文本处理语言有了大致的了解。虽然我说它是轻量级,但它的功能绝对是重量级。它可以全面、高效的完成常见的文本处理需求,当然且不提它强大的CGI处理能力。先谈一下我对这门语言的理解吧:

首先优点:

1. 灵活的语法。这一点不同与许多其它相对“严谨”的语言,如C,PHP,JAVA等。用Perl,你能写出绝对简练、“易懂”的语句,而不用担心其执行效率,这将大大减少编程者工作量,提高工作效率。
2. 超强的I/O性能。比如它可以极为简易、灵活的读取文件内容、目录信息以及写入文件和建立、删除目录等。并可轻易的“捕获”操作系统级的“外部指令”产生的信息用于自身数据处理。

3. 面向对象性。同时,Perl也是一门面向对象的编程语言,它拥有非常强大、完善的模块以完成复杂的数据处理需求,如生物信息方面有 BioPerl 这个模块,可以轻易完成绝大部分生物信息学数据的获取、处理和展示。

4. 强大的数据库兼容性。Perl有强大的数据库接口(DBI),对Mysql等主流数据库都有较好的支持,甚至于借助于模块,它竟然支持从CSV文件中读取并写入数据,极大的方便高通量的数据处理。

当然它也有它的“缺点”,至少我认为不太方便的地方就是:Perl对于数组的处理。它将以数字为索引的数组称为数组(Array),以具体键名索引的数组称为哈希(Hash)。其实这两个东西的本质是一样的,数组就是一种特殊的哈希,它的键名就是自动递增的自然数。而在PHP里,只有数组的概念,并且无论是循环还是取值都很灵活。所以这一点,我感觉Perl分的有点细,并且在多维数组(哈希)甚至嵌套数组(哈希)处理方面有些繁琐。我认为,这种多维数组或嵌套数组的建立以及循环取值,是一门编程语言的核心。只有你能熟练的运用多维或嵌套数组获取和输出数据,才能称的上对这门语言融会贯通。数组哈希嵌套有些麻烦,查找资料后解决。这里记录下要点:

先是数组嵌套哈希:

my %hash = (one => 1, two => 2, three => 3);
my @array = (I, II, III);
#赋值与取值:{%hash}表示复制哈希值放入数组,\%hash则表示引用哈希值,意味着此哈希若更改,数组中的哈希也会相应更改
push @array, {%hash};
print $array[-1]{one};

然后是哈希嵌套数组:

my %hash = (one => 1, two => 2, three => 3);
my @array = (I, II, III);
#赋值与取值:[@array]表示复制数组值放入哈希,\@array则表示引用数组值,意味着此数组若更改,哈希中的数组也会相应更改
$hash{four} = [@array];
print $hash{four}[0];

另外附小驼书第6版 中文版下载:

点击下载:Perl语言入门 第6版 中文版