Board logo

标题: [原创教程] perl学习笔记 [打印本页]

作者: lllsoslll    时间: 2011-10-27 00:06     标题: perl学习笔记

本帖最后由 lllsoslll 于 2011-10-27 00:45 编辑

学习笔记,边学边记;贵在坚持;
本人perl目前很菜,笔记很乱,没有条理,主要是为自己尽快熟悉语法;欢迎提出批评和建议;

先配置好perl解释器环境;我的配置环境是xp下,perl5.6版本;
http://www.bathome.net/thread-12390-1-3.html

基本知识
同大多数语言一样,perl的每条语句后以; 结尾
perl 的注释:一条语句后 “#”字符后面的部分
作者: lllsoslll    时间: 2011-10-27 00:45

第一章 简单变量(标量变量)
perl的简单变量名用$做前缀,常用的两种数据类型:数字,字符串(用'括起来,或者"括起来);

若字符串中含有非数字的字符,则从左起至第一个完整的数值作为数字后面的忽略;
$a="3.141e2abc45"+1;
print $a; # 315.1

常见整数表示法:
1300300 、 1_300_300
常见浮点数表示法:
-11.4 、 -0.3 、.3 、 3. 、 54.1e+02

'ab\nAB' 与 "ab\nAB" 的区别:
单引号的原样输出;双引号的则转义后输出(这部分不熟悉研究ascii码表);
常用转移字符 \r \n \t \a \b \" \$  \@ \\ ...
                   \x**(16进制) \***(8进制)  比如 \x22表示“"”
作者: lllsoslll    时间: 2011-10-27 00:46

第二章 列表与数组
列表像是一堆数据:
(1,2,3,4,5,6) 又等同 (1,2 ... 6); #以逗号分隔
qw/什么 东东 1 2 xyz/ 等同于qw{什么 东东 1 2 xyz} #以空格分隔
perl存放列表的变量用@做为前缀,比如@arr就是一个数组标量,可以把列表赋值给他:
@arr=(0,1...10);
访问列表的第n个元素用$a[n-1];比如第一个元素$arr[0]
$#arr中存放着数组@arr的索引值,所以可以用$#arr获取数组中元素的个数;
$a=@arr # perl会进行语境转换,$a的值则被赋值为@arr元素的个数
作者: lllsoslll    时间: 2011-10-27 00:46

本帖最后由 lllsoslll 于 2011-11-2 23:47 编辑

第三章 基本控制结构
  1. # "<",">",">=","<=","==","!=": 数字 比较。
  2. # "eq","lt","gt","le","ge","ne" : 字符串 比较。
  3. if($a<$b) {print $a; }
  4. print $a if ($a<$b);
复制代码
  1. if (!($a < 3)) ...
  2. 等价于
  3. unless($a<3)
复制代码
  1. while ($a<0) {print $a;}
  2. print $a while ($a<0);
复制代码
  1. for (语句; 条件表达式; 语句;) {语句;}
  2. for (1 ... 10) print $_;
  3. print for (1...10);
  4. print foreach (@array);
复制代码

作者: lllsoslll    时间: 2011-10-27 00:47

本帖最后由 lllsoslll 于 2011-11-2 23:59 编辑

第四章 散列
  1. $hash{1} = 'one';
  2. $hash{2} = 'two';
  3. $hash{3} = 'three';
  4. ##
  5. my %hash = (
  6. 1 => 'one',
  7. 2 => 'two',
  8. 3 => 'three',
  9. );
复制代码

作者: lllsoslll    时间: 2011-10-27 00:47

第五章 子程序
作者: lllsoslll    时间: 2011-10-27 00:47

第六章 正则表达式
作者: lllsoslll    时间: 2011-10-27 00:48

本帖最后由 lllsoslll 于 2011-10-27 00:49 编辑

第七章 文件读写与文件系统
作者: lllsoslll    时间: 2011-10-27 00:50

第八章 引用
作者: lllsoslll    时间: 2011-10-27 00:51

第九章 包和模块
作者: HAT    时间: 2011-10-27 09:56

回复 3# lllsoslll
  1. my @a = (1, 2, 3);
  2. #数组元素个数
  3. print scalar(@a),"\n";
  4. print @a."\n";
  5. my $n = @a;
  6. print "$n\n";
  7. #数组最后一个下标(数组元素个数减去1)
  8. print "$#a\n";
  9. #数组最后一个元素
  10. print "$a[$#a]\n";
复制代码

作者: 920168    时间: 2011-10-27 10:22

支持LZ!!
作者: lllsoslll    时间: 2011-11-3 00:04

第十章 常用函数及特殊用法;




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2