- 时间:2021-02-19 09:42 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:Perl 与 Python 之间的一些异同整理
[b]关于 Perl 与 Python 的起源和特点
[/b]
Perl 是 Practical Extraction and Report Language 的简称,由 1987 年 Larry Wall 创建,最初的目的是为了在 UNIX 上方便处理报表,经过长期的发展已经成为一种全功能的程序设计语言,当前最新的版本为 Perl5.14.1,Perl 作为一种自由而强大的编程语言,其中心思想是: There's More Than One Way To Do It。(不只一种方法來做这件事 ),即「 Tim Toady 」。作为一种“胶水型”语言,它具有强大的正则表达式和模式匹配功能以及灵活的数据结构,如动态数组、Hash 等,在语法规则上借鉴了 C/C++、Basic、Pascal 等语言,其不足之处在于存在一些冗余语法,代码的可读性较差。
Python 是一种基于面向对象的解析性交互式的开源编程语言,它起源于 1989 年末由 CWI(阿姆斯特丹国家数学和计算机科学研究所)的研究员 Guido van Rossum 创立,1991 年初公开发行,其开源式的发行方式促进了 Python 的较快发展,目前已经形成了一个强大的社区力量。Python 开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。Python 具有简单易学、代码规范、语法简单、可移植性强、支持多平台、类库丰富等优点。
Perl 和 Python 都是开源的,但其哲学理念却刚好相反,因此常被人们将这两种语言放在一起进行比较。下面的篇章将从基本数据类型、控制流、函数、面向对象、文本处理等方面对这两种语言进行简单的比较和鉴别。
[b]Perl 与 Python 的基本数据类型[/b]
脚本语言支持多种数据类型,变量无需事先申明,类型根据值来动态确定,一个变量在程序中可以根据上下文环境的不同存储不同类型的值。
Perl 支持的基本数据类型包括:标量、数组、哈希。在定义的时分别用 $、@、% 表示。
标量 (scalar):标量是 Perl 中最简单的数据类型,大多数标量由数字或字符串组成。其中数字类型如整数、浮点数等,字符串有单引号和双引号内两种形式,对长度没有限制。两者的区别在于在单引号内 \n 不代表换行,而代表反斜线和 n 这两个字符,双引号内字符串则可以通过反斜线进行转义。字符串的操作符有 . 拼接操作符和 x 重复操作符等。
数组 (Arrays):数组用 @ 定义,如 my @array=("a","b","c","d"); 访问数组的元素用 $array[1]。在 perl 中,数组也可以当做堆栈来处理,支持的操作符包括 pop 和 push,shft 和 unshift。两组操作的区别在于前者对数组的尾部进行处理,而 shift 和 unshift 则针对数组的头部进行处理。pop 得到的是数组的最后一个元素,如 pop(@array)= d,如果数组为空,则返回 undef。而 shift(@array)=a。
哈希:也称作关联数组,是根据关键码值 (Key value) 而直接进行访问的数据结构。用 % 定义,如 %my_hash=(“key1”=>”23”,”name”=>”zhang”,”age”=>”24”),其中键以字符串表示,Hash 可以是任意大小。
与 hash 相关的函数有:
keys:返回 hash 的键列表 my @keylist = keys %hash
value:返回值列表 my @valuelist = values %hash
each:用两个元素的列表返回键值对。
[url=http://www.ibm.com/developerworks/cn/linux/]developerWorks Linux 专区[/url]寻找为 Linux 开发人员(包括 [url=http://www.ibm.com/developerworks/cn/linux/newto/]Linux 新手入门[/url])准备的更多参考资料,查阅我们 [url=http://www.ibm.com/developerworks/cn/linux/best2009/index.html]最受欢迎的文章和教程[/url]。
[*]在 developerWorks 上查阅所有 [url=http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp?search_by=Linux+%E6%8A%80%E5%B7%A7]Linux 技巧[/url]和 [url=http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp?type_by=%E6%95%99%E7%A8%8B]Linux 教程[/url]。
[/*][*]随时关注 developerWorks [url=http://www.ibm.com/developerworks/cn/offers/techbriefings/]技术活动[/url]和 [url=http://www.ibm.com/developerworks/cn/swi/]网络广播[/url]。
[/*][*]参考 [url=http://perldoc.perl.org/index-overview.html]Tutorial Perl[/url]官方文档关注更多 Perl 动态。
[/*][*]参考 [url=http://www.tutorialspoint.com/perl/index.htm]Perl Document[/url]了解 Perl 基本语法。
[/*][*]参考 [url=http://www.python.org/doc/]Tutorial Python[/url]查看 Python 的官方文档。[/*][/list]