一、语言
perl
实用报表提取语言
python
解释型、交互式、面向对象的语言
二、语言特点
perl
入门容易、程序编写容易、接近自然、可移植性强
python
易于学习、易于阅读、可移植、可扩展、数据库
三、变量
perl
标量$
数组@
哈希%hash =(“key”=>”value”)
特殊变量:
,
@
,
_,@_,
,@,[1],$1
:
未
告
知
P
e
r
l
使
用
哪
个
变
量
或
数
值
时
,
P
e
r
l
会
自
动
使
用
_:未告知Perl使用哪个变量或数值时,Perl会自动使用
:未告知Perl使用哪个变量或数值时,Perl会自动使用
$#:打印数组最后一个下标的值
$[:含有所有数组的第一个索引的标量,默认是0
python
数字
列表list = []
字典 dict={“key”:”value}
不可变对象:元组、字符串
可变对象:列表、字典
四、控制流
perl
条件:if/if else/if elsif
循环:while/for/foreach
python
条件:if/if else/if elif
循环:while/for
五、循环操作符
perl
next:结束当前迭代进入下一个迭代
last:结束当前循环直接执行循环后语句
continue:在下一次迭代条件被评估前执行
goto
redo
python
continue:跳出本次循环
break:跳出所有循环
pass:占位符
六、正则表达式
perl
匹配:m//
替换:s///
转化:tr///
split/PATTERN/,EXPR,LIMIT
=~:默认情况下模式匹配的操作对象是$_,绑定操作符告诉Perl,拿右边的模式来匹配左边的字符串,而不是直接匹配
$&:储存整个匹配区段
$‘:储存匹配之前的内容
$’:储存匹配之后的内容
python
re.match
re.search
re.sub
re.compile
findall
re.finditer
re.split
七、逻辑运算符
perl
and
or
not
python
and
or
not
八、I/O方法
perl
标准:$variable=<STDIN
Print STDOUT $variable
文件:open IN,”<input.txt”
open OUT ,”>output.txt”
python
标准I/O: (从键盘输入)raw_input:从标准输入读入一行返回为字符串
Input:基本等同raw_input,区别为默认输入域为一个python表达式,返回评价结果
标准输出:print(输出到屏幕)
九、函数
perl
定义:sub name{}
引用:&函数名,可以在定义之前,也可以在定义之后引用
python
定义:def 函数名(参数列表)
引用:一定要在定义之后引用
十、模块
perl
安装:模块包;cpan
使用:use Getopt::Long qw/GetOptions/
python
安装:source源代码/PyPi/conda
使用:import/from/im.reload()
十一、多线程与胶水语言
perl
Perl中数据默认不能在线程中被分享,因此具有安全性。可使用threads模块创建线程。Threads::shared来实现数据共享
lock()对分享的变量加锁
python
两种方式:函数或用类来包装线程对象。
函数创建新线程:调用thread模块中start_new_thread()