找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21073|回复: 12

[原创教程] perl学习笔记

[复制链接]
发表于 2011-10-27 00:06:56 | 显示全部楼层 |阅读模式
本帖最后由 lllsoslll 于 2011-10-27 00:45 编辑

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

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

基本知识
同大多数语言一样,perl的每条语句后以; 结尾
perl 的注释:一条语句后 “#”字符后面的部分

评分

参与人数 1PB +10 技术 +1 收起 理由
broly + 10 + 1 希望楼主以后继续发扬~

查看全部评分

 楼主| 发表于 2011-10-27 00:45:32 | 显示全部楼层
第一章 简单变量(标量变量)
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表示“"”
 楼主| 发表于 2011-10-27 00:46:04 | 显示全部楼层
第二章 列表与数组
列表像是一堆数据:
(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元素的个数
 楼主| 发表于 2011-10-27 00:46:37 | 显示全部楼层
本帖最后由 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);
复制代码
 楼主| 发表于 2011-10-27 00:47:01 | 显示全部楼层
本帖最后由 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. );

复制代码
 楼主| 发表于 2011-10-27 00:47:30 | 显示全部楼层
第五章 子程序
 楼主| 发表于 2011-10-27 00:47:47 | 显示全部楼层
第六章 正则表达式
 楼主| 发表于 2011-10-27 00:48:35 | 显示全部楼层
本帖最后由 lllsoslll 于 2011-10-27 00:49 编辑

第七章 文件读写与文件系统
 楼主| 发表于 2011-10-27 00:50:29 | 显示全部楼层
第八章 引用
 楼主| 发表于 2011-10-27 00:51:52 | 显示全部楼层
第九章 包和模块
发表于 2011-10-27 09:56:28 | 显示全部楼层
回复 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";
复制代码
发表于 2011-10-27 10:22:00 | 显示全部楼层
支持LZ!!
 楼主| 发表于 2011-11-3 00:04:07 | 显示全部楼层
第十章 常用函数及特殊用法;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:44 , Processed in 0.022648 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表