标签:
同时学perl、python和shell脚本会很容易将它们的语法搞混,本文主要是一个个人的总结,方便要用时的查询。
文件头格式:
#!/usr/bin/perl use strict; use warnings;
运行perl脚本:
#调用perl程序 perl test.pl #可执行脚本 chmod 755 test.pl ./test.pl
基本读写:
#键盘输入 $a = <STDIN>; chomp($a); print $a; #文件输入 open(IN, "<test.txt") or die "Cannot open file:$!\n"; open(OUT, ">test.txt") or die "Cannot open file:$!\n"; while(<IN>){ chomp; print OUT "1. $_"; last; }; close(IN); close(OUT);
基本控制流:
if( ){ }elsif( ){ }else{ }
print "Hello!" if (1 == 1); #简写
while( ){ $count++; } for($i; $i <= 10; $i++){ } foreach (@array){ print $_; }
last; #break next; #continue
数据结构:标量变量($),列表(),数组(@),哈希(%),文件句柄(<>)
语法结构:语句以分号(;)结束,代码块使用花括号{}划分,动态语言不必指明变量类型
单双引号:单引号q(),所有原样输出;双引号qq(),允许插入变量
语法惯例:perl中很多地方括号()是可由可无的,特别是内置函数,如print、split等;可以使用递增递减运算符
安装:Windows装Active版本,(perl -v)检查;linux装,
$ tar -zxvf stable.tar.gz -C dir $ sh Configure # 配置 $ make # 安装 $ make test #测试是否make成功 $ make install
帮助文档:perldoc命令
perldoc #会提示用法 perldoc perl #会显示详细用法 perldoc perlfunc #三大模块 perldoc perlop perldoc perlfaq
建议使用浏览器查看本地的HTML文档:
file:///D:/Program%20Files/Perl64/html/index.html
$_:默认参数,就是当前的默认操作参数,在读文件<FILE>、迭代for (@array)、split / /、print中非常重要
$!:标准错误输出,一般只与or die语句连用
$1:正则表达式模式中第一个括号内的变量,如(.*)、(string),以此类推
@_:sub函数传递的参数数组,
连接字符串:并置运算符(.)
转义:反斜杠\
区分标量和字符串:{}显示指定变量名,如${name}space
重复运算符(x),如“-”x 10
列表:列表是常量,由圆括号()创建,中间用逗号隔开
# 范围运算符 @a = (1..10) @b = (1..10, 21..30) @list=(aa..zz);
创建数组:用列表()创建数组
引用数组:用方括号[ ]下标引用数组
创建哈希:用列表()创建哈希,为了好看,键值对以=>形式组织;也可以单个创建
引用哈希:用花括号{}引用哈希
数字比较:(==、>、<、>=、<=、!=)
字符串比较:(eq、gt、lt、ge、le、ne)
print:可以直接接变量$var、@array、%hash,输出的就是不带空格回车,将所有元素连在一起,数组一坨,哈希一坨,其中哈希顺序是乱的。
print:可以带双引号,数组之间有空格,可以分辨了;哈希失效了,没有内容,就显示出%hash。
print:输出到文件时,文件句柄在前,中间是空格(不能是逗号),后面是输出内容
q():用单引号将内容括起来
qq():用双引号将内容括起来
qw():用单引号将空格隔开的序列组装成数组,会屏蔽里面的标量
# 两者等价,最好不要有内嵌变量 @a = qw(abc def ghi) @b = (‘abc‘,‘def‘,‘ghi‘)
qx{ }:捕获命令输出
$directory = `dir`; $directory_2 = qx{dir};
标准函数格式:
int(5.20);
length(“nose”);
lc(“ME TOO”);
uc(“hal 9000”);
cos(50);
rand(5)
push()
pop()
shift():将最后一个元素移走,常用语处理函数参数
unshift()
chomp是运算符,可以用圆括号,也可以用空格;它会改变参数变量,其返回值是1或0
$a = "lizhiixn\n"; print $a; print "next\n"; chomp $a; print $a; print "next";
$b = chomp($a); #极少这么用
标签:
原文地址:http://www.cnblogs.com/leezx/p/5755237.html