一、Perl 与 Python 的起源
Perl 是 Practical Extraction and Report Language 的简称,由 1987 年 Larry Wall 创建,最初的目的是为了在 UNIX 上方便处理报表,经过长期的发展已经成为一种全功能的程序设计语言,其中心思想是:There’s More Than One Way To Do It。Perl具有强大的正则表达式和模式匹配功能以及灵活的数据结构,但存在一些冗余语法,代码的可读性较差。
Python 是一种基于面向对象的解析性交互式的开源编程语言,它起源于 1989 年末由Guido van Rossum 创立,1991 年初公开发行。Python 开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。Python 具有简单易学、代码规范、语法简单、可移植性强、支持多平台、类库丰富等优点。
二、Perl 与 Python 的数据类型
Perl支持的基本数据类型包括:标量、数组、哈希。在定义的时分别用 $、@、% 表示。
- 标量 (scalar):大多数标量由数字或字符串组成。其中数字类型如整数、浮点数等,字符串有单引号和双引号内两种形式,对长度没有限制。两者的区别在于在单引号内
\n
不代表换行,而代表反斜线和 n 这两个字符,全部按照单引号内原样输出;双引号内字符串则可以通过反斜线进行转义。字符串的操作符有 . 拼接操作符和 x 重复操作符等。 - 数组 (Arrays):数组用 @ 定义,如
my @array=("a","b","c","d");
访问数组的元素用$array[1]
。
数组的操作包括pop
和push
,shft
和unshift
。pop
和push
对数组的尾部进行处理,而shift
和 unshift`则针对数组的头部进行处理。 - 哈希(Hash):是根据关键码值 (Key value) 而直接进行访问的数据结构。用
%
定义,如%my_hash=(“key1”=>”23”,”name”=>”zhang”,”age”=>”21”)
,其中键以字符串表示,Hash 可以是任意大小。
相关的函数有:
keys:返回 hash 的键列表my @keylist = keys %hash
value:返回值列表my @valuelist = values %hash
each:用两个元素的列表返回键值对。
while(($key,$value)= each %hash) { print “$key =>$value\n”; }
Python 支持五种基本数据类型:数字 (Numbers)、字符串 (String)、列表 (List)、元组 (Tuple) 和字典 (Dictionary)。其中数字和字符串和 perl 中的标量对应,列表和数组对应,元组可以看做是不可变的列表,字典和 hash 对应。
- 数字 (Numbers):Python 支持五种基本数字类型,分别为 int( 有符号整数 ) 、long( 长整数 ) 、bool( 布尔值 ) 、float( 浮点数 ) 、complex( 复数 )。
- 字符串 (String):Python 与 Perl 一样也支持单引号和双引号字符串,但与 Perl 不同,转义字符在单引号中也会起作用。
字符串支持操作符in
,not in
,连接操