Perl 语言笔记

来源:互联网 发布:js 点击radio 触发事件 编辑:程序博客网 时间:2024/06/18 17:56

百度词条:

Perl,一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。Perl最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。现在的版本为Perl 6,于2015年12月25日更新。Perl借取了C、sed、awk、shell 脚本语言以及很多其他程序语言的特性,其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。简而言之,Perl像C一样强大,像awk、sed等脚本描述语言一样方便,被Perl语言爱好者称之为“一种拥有各种语言功能的梦幻脚本语言”、“Unix 中的王牌工具”。Perl 一般被称为“实用报表提取语言”(Practical Extraction and Report Language),你也可能看到“perl”,所有的字母都是小写的。一般,“Perl”,有大写的 P,是指语言本身,而“perl”,小写的 p,是指程序运行的解释器。
变量定义,以$号开头,如:$num =1;
数组定义,以@开头,如:@array = (1,2,3);
数组元素调用 $array[index],其中index表示数组下标,如上例,$array[0]的值是1
散列定义,以%开头,如:%hash=("a",1,"b",2);
散列调用 %hash,其中keys表示键值,多用字符串表示,注意hash的key必须具有唯一性,但value可以不唯一,为此hash的key经常被用来做唯一化处理,如上例中的"a", "b", values是keys对应的值,如1,2。$hash{"b"}的值是2。
笔记内容及详解:

print"hello world\n";   #perl 的用print"";语句的结束以分号;注释以井号#;在输出内容的最后加\n则表示换行,注意其位置在输出的引号里面
#perl程序通常以.pl结尾,否则无法在IDE上运行,编辑和编译器有ActivPerl,Perl Strawberry,Padre(the perl IDE),这里使用的是Padre因为有自带的IDE和编辑运行环境,在不同的环境中语法是不变的

#perl变量:不要求变量有类型;对数组,列表,采用以@后接变量名表示,比如@names;对于保存单个值的变量,采用$后接变量表示,称之为标量,比如$name;对于哈希变量,采用%后接变量名表示;

#perl的文件处理原则:open打开,close关闭,print向文件输出内容;>表示写入,<表示读出,>>表示在原有内容上增加,FH以后表示句柄;open(FH,"<文件名")读取文件;open(FH,">文件名")写入文件,如果文件已经存在,则删除它重新建立一个新的;Open(FH,">>文件名")打开一个文件并增加内容,如果文件不存在则建立一个文件再打开,如果已经存在则直接打开;Close(FH)关闭文件

print"hello"." world\n";        #点号.起连接作用,把两个输出内容无空格连接在一起,在字符串输出换行时\n前可以不用点号连接;输出时会把内容中的空格一起输出,如world前的一个空格

print'hello world\n'."\n";         #这里输出的是hello world\n,单引号也可以表示字符串,但其变量不会内插,而是直接以变量名表示出来;后接."\n可以实现换行

#'free'单引号字符串,含有4个字符,''表示空字符,点号.是连接操作符,重复操作符是小写x,好惊讶,如下

print "free" x 3;   #输出为freefreefree,字符串的重复操作

print 2x5;   #输出为22222,这里重复操作符是小写x,可以直接适用于字符串和数字,区别与乘号*

$mytext=<FH>;  #等于号=后面接文件句柄,就能读取文件;这里是一个标量,所以只合适文件只有一行(一行是从行首到换行符),如果多行文件应用数组方式

@myext=<FH>;#返回所有内容给@myext,数组每个元素是文件的一行

print 6+9;   #直接输出计算的结果,不需要引号,带有引号的数字便是字符串,运算符:+,-,*,/

print "\n";   #在这里只输出换行,注意不能用单引号,否则会输出\n而无法实现换行

$a=-12e-24;  #定义一个标量并赋值为-12乘以10的-24次方

print $a;   #输出上面定义的标量,注意无需引号

print 123_456_789;   #输出为123456789,这是对整数的输出

print "the answer is",6*7,"\n";    #如果在最后换行以,"\n"语句,此语句中逗号表示输出多个结果之间的连接,注意逗号和点号连接作用的区别,点号只能连接字符串

print 0377,"\n";   #输出255,前面加0表示377是八进制的,输出十进制为255

print 0xff;   #输出结果为255,数值前面加0x表示十六进制,输出十进制为255

print 0b11111111;   #输出结果为255,数值前加0b表示二进制,输出十进制为255

print "2"*"3";   #运算符*需要数字,所以字符串与数字之间旧进行了自动转换,输出6

print "12free"*"  3";   #输出结果为36,在这里perl滤掉了非数字字符串和空格

#标量变量标识符,由字母或下划线开头,后接字母,数字,下划线,perl是区分大小的
#需要强调的一点是每个需要加分号结束的语句千万不能缺少,不然后面的所有都无法运行而报错

$b =10;
$b+=$b;   #+=,*=,/=,-=,这些都是二元赋值操作符,先加减乘除后进行赋值运算
print $b;   #输出结果为20,相当$b=$b+10

#字符串中引用标量标量的方法,如下
$first="you are my firend";     #字符串中引用标量变量

$so="$first so i beleive you";   #标量可以直接代入字符串中

$soso=$first." so i beleive you";   #输出时会包括空格输出,注意first作为标量要写成$first,此处用点号连接两个字符串

print $so."\n".$soso;   #两个标量之间或者两个字符串之间可以用点号.连接,这里连接"\n"实现换行

print $so,"\n",$soso;    #当然这里也可以用逗号连接输出

#perl没有专用的boolean值,真假值判断:如果值为数字,则0是false,其余为真;如果值为字符串,则空串为false,其余为真;如果值既不是数字又不是字符串类型,则将其转为数字或字符串后再利用前面的规则判断

#注意,字符串'0'和数字0有相同的标量值,perl将相同看待,'0'是唯一非空但值为0的串

$c="a line of text\n";
chomp($c);   #chomp的功能是去掉$c的换行符,当下面输出时不会换行
print $c;
print "\n";
print 222+333;

0 0
原创粉丝点击