您的位置:技术中心首页 > 工具学习 >> Perl >> 《Learning Perl》学习笔记 -- 第二章 标量数据

《Learning Perl》学习笔记 -- 第二章 标量数据

作者:未知   时间:2007-10-21 08:30:17  来自:网上转载  浏览次数:0  文字大小:【】【】【

这章介绍了Perl语言中标量数据的概念、应用于标量数据的操作符及if和while两种控制结构。

1.标量(Scalar)数据的概念
在Perl中,单个的数字和单个的字符串都被视为标量数据,而在其它一些编程语言中,字符串被视为字符数组(譬如C语言中)。
1.1 数字标量
Perl中的数字没有整型、浮点型的区别,在Perl的内部统一用浮点型表示,对于用户来说,感觉不到差别。
八进制直接量以0开头,十六进制以0x开头,二进制以0b开头。
1.2 字符串标量
字符串是字符的序列,字符串中可以包含任意字符的组合。在Perl中表示字符串有两种方式:单引号字符串和双引号字符串。字符串是放在单引号'(或双引号")之间的字符序列;单引号'(或双引号")本身并不是字符串的一部分,它们只是让Perl确定字符串的开始与结束。
1.2.1 单引号与双引号在字符串标量中的区别
在单引号间,除了单引号和反斜杠以外的任何字符在字符串中表示该字符本身;
在双引号间,则可以使用反斜杠转义字符及变量替换。
所以,若想获得纯粹的字符串,可以使用单引号;若想使用反斜杠转义字符或变量替换,则使用双引号。
1.2.2 变量替换
当把一个字符串用双引号括起来时,就要对它进行变量替换(除了要检查反斜杠转义符以外)。也就是说,字符串中的所有标量变量名都将被替换为它的当前值。
如果只有一个变量,则不必使用替换,下面两个语句的功能是相同的:
print "$var";
print $var;
1.3 数字与字符串的转换
数字转换为字符串:直接在数字上加上单引号或双引号即可,譬如把数字37变成字符串,37-->"37"。
字符串转换为数字:直接去掉单引号或双引号,并去掉非数字字符,如第一个字符不是数字,则转换后,该数字为0。譬如"37jerry"转换为数字后,变成37;"jerry"转换为数字后,变成0。
1.4 标量变量
标量变量以$开头,后跟文字(字母和数字)和下划线,但不能以数字开头。
在Perl中,变量在第一次赋值前有特别的undef值,这个值对于数字来说,相当于0;对于字符串来说,相当于空串。所以在Perl中,相当于对定义的变量已经进行了初始化,不必担心由于未初始化而出现的一些错误。

2.操作符
2.1 数值操作符
包括常规的+,-,*,/,%(求模),**(求幂)等操作符。
2.2 字符串操作符
字符串可以用.操作符连接起来。
串重复操作符x(小写字母x):这个操作符取它左边的操作数(一个字符串),生成连续的拷贝,重复次数由它右边的操作数(一个数字)决定。譬如,"fred"x2="fredfred";
2.3 二元赋值运算符
和C语言类似,Perl中有二元赋值运算符,譬如+=,*=等。
2.4 比较操作符
比较数字:<, <=, ==, >=, >, !=。
比较字符串:lt,le,eq,ge,gt,ne(含义和上面的数字比较符对应)。

3.控制结构
3.1 if控制结构
if () {};
if () {}; else {};
3.1.1 if控制结构中条件判断的真假问题(布尔值)
几条规则:
特殊值undef是假;
0是假,其它的数字全为真;
空串('')是假,其它的字符串一般是真;
一个例外:因为数字和字符串是等价的,所以0的字符串形式,'0',和它的数值形式有同样的值:假。这点是和C语言有区别的地方。
总结:标量值为undef,0,'',或'0'时,为假;所有其它的标量都为真。
3.2 while控制结构
while(){};

4.有用的函数
4.1 取得用户输入
使用行输入操作符:$line = ;
$line是自己定义的标量变量,Perl以换行符判断一个行输入的结束,同时换行符也会存储在变量$line中。
4.2 chomp操作符
chomp作用于字符串,用于去掉字符串结尾的换行符且只能去掉一个,如果该字符串末尾不是换行符,则chomp什么也不做。
chomp($line);
chomp $line; #也可以
这涉及到Perl的一个基本规则:除非去掉括号会改变意思,否则括号总是可有可无的。
4.3 defined函数
用于判断一个变量是undef还是非空字符串,可以使用defined函数,它对undef返回假,其它所有情况返回真。

责任编辑:5life

更多相关 PCB 的文章

本文共有0条评论,现在显示最新的5条。

栏目导航

电路基础
硬件语言
逻辑验证
电路综合
后端设计
可测设计
基本逻辑
制造封装
总线协议
说文解字
工具学习
数字滤波
闲话漫谈
数字锁相
设计杂项
低耗设计

站点最新

更多相关链接

  《Learning Perl》学习笔...
  《Learning Perl》学习笔...
  在Perl中获取当前目录的...
  在perl脚本中调用外部命令
  使用perl脚本分析timing...

栏目最新

更多相关链接

  《Learning Perl》学习笔...
  《Learning Perl》学习笔...
  在Perl中获取当前目录的...
  在perl脚本中调用外部命令
  使用perl脚本分析timing...

热点文章

更多相关链接

  使用perl脚本分析timing report
  在perl脚本中调用外部命令
  在Perl中获取当前目录的完整路径
  《Learning Perl》学习笔记 ...
  《Learning Perl》学习笔记 ...