perl学习笔记-----------------------(1)

2016-09-29 19:21:34来源:CSDN作者:henni_719人点击

1.标量数据:可有操作符(如相加和串联),通常会产生一个新的标量数据。标量数据的值可以存放在标量变量中。标量可以从
文件或设备读取,也可以写进去。
2.在Perl 内部没有整数值,在内部,Perl 都把它们当作双精度浮点数来处理
3.数字符号(literal)是Perl 程序源代码中代替某个值的方法
4.Perl 允许用下划线来分隔它
5.可以利用oct()或hex()把某个看起来像八进制或十六进制的数据串转换成数字
6.在模数运算中,如果有一个操作数为负数,那其结果和Perl 的具体实现相关.Perl 中提供了和FORTRAN 类似的指数操作符,C 和Pascal 很希望有类似的能力。这个操作符由
两个*号表示,如2**3,表示2 的3 次方,等于8
7.通常不能进行一个负数的非整数次方的运算。对数学有一定了解的读者知道,这将产生一个复数(数学概念中的复数:如1+2i,译注)。
如果想进行类似的预算,你需要Math::Complex 这个模块
8.字符串是一串字符(如hello)。字符串可能是字符的任意组合◆。最短的字符串不含任何字符。最长的字符串,可以填满
整个内存。
9.和C,C++不同,Perl 中NUL 字符没有特殊的含义。Perl 能计算长度,不用靠null 来判断字符串是否结束。
10.有两种类型的字符串:单引号字符串和双引号字符串
   单引号字符串:是由单引号括起来的字符序列。单引号不是字符串的一部分,但Perl 可以利用它来辨别字符串的开始和结束。
除了单引号,或者反斜线(包括换行字符,如果字符串在下一行继续)之外的任何字符都表示它自身。要得到一个反斜线,
可以把两个反斜线放在一起;要得到单引号,需要在单引号前加上反斜线.单引号字符串中的/n 不会被当作换行符来处理,其仅仅是两个字符/和n。只有在反斜线(/)后面接的是/或单引号’,其才会被
当作特殊符号来处理。
    双引号字符串和在其它语言类似。它也是字符的序列,不同点在于,其由双引号括起来的。现在,反斜线可以用来表示控制字符,或者八进制,十六进制数的表示。Perl 允许你以一种更有意义的方式来书写。当然,如果想/和之后的字符成为转义字符(如/n 表示新行),应当使用双引号。双引号字符串另一个性质是可进行变量内插,这是说当使用字符串时,如果字符串中含有变量名,将由变量的当前值替换
它。
11.字符串可由"." 操作符连接(是的,只是一个点) 。
12.一个特殊的操作符是字符串重复操作符(string repetition operator),由小写的字母x 表示。这种操作能把操作符左边字符串
重复操作符右边数字那么多次:“fred”x 3 # “fredfredfred” ;  字符串重复操作符需要一个字符串作为左操作数,因此数字5 被转变为字符串“5”(在一节将详细讨论),一个单字符字符串。字符串重复操作符不是可交换的.
13.Perl 将在需要的时候自动在数字和字符串之间转换.这完全依赖于标量值之间的的操作符。
14.用首字符0 表示非十进制值对数字有效,对自动转换没有作用。使用hex()和ort()来转换此类字符串
15.这条命令甚至在non-Unix 系统中也有效,由于在这些系统中通常与Perl 的具体路径关系不大,因此可如下书写:
#! perl –w
在Perl5.6 或之后的版本中,可以使用pragma 来打开警告(warning).(注意,它对早期的Perl 版本无效)◆。
◆warnings progma 允许文字上的警告。你可以在pelllexwarn 的用户手册中找到详细信息。
#! /usr/bin/perluse warnings;
如果看到不能理解的警告信息,可以使用diagnostics pragma,
通过它可以看到更详细的信息。perldiag 的mangage 中有对短的warning(警告)和长的diagnostic(诊断)的描述。
#! /usr/bin/perluse diagnostics;
当把use diagnostics 加入程序后,在每次调入程序时,它好象暂停了一会儿。那是因为Perl 做了大量的工作(占去大块内
存),使在当Perl 发现错误时,你能迅速的读其文档,如果有的话。这导致了一种对Perl 程序优化的方法,当不需要读警
告信息相关的文档时,将use diagnostics 去掉;另一种优化方法是,在命令行中使用–M 这个参数,仅当需要diagnostics 时才用,而不用每次通过修改源代码来决定是否激活diagnostics
16.变量是保存一个或多个值的容器◆。变量的名字在整个程序中保持不变,但其包含的值可以变化.
17.标量变量可以存放一个标量值。标量变量的名字由一个美圆符号($)后接Perl 标识符:由字母或下划线开头,后接字母,
数字,或者下划线。或者说由字母,数字和下划线组成,但不能由数字开头。大小写是严格区分的:变量$Fred 和变量$fred
是不同的。任意字母,数字,下划线都有意义,如:
$a_very_long_variable_that_ends_in_1
和变量:
$a_very_long_variable_that_ends_in_2
是不同的。
标量变量在Perl 中由$开头
18.标量变量最通常的操作是赋值:将值赋给变量。Perl 中的赋值符是等号(和许多语言类似),将等号右边的值赋给等号左边
的变量:
$fred = 17; #将17 赋给变量$fred$barney =‘hello’; #将五个字母的字符串‘hello’赋给$barneyblei@163.com 29 / 201 9/21/2006$barney = $fred + 3;# 将$fred 的值加上三赋给$barney (20)$barney= $barney*2;#将变量$barney 乘2 再赋给$barney (40)

19.:二元赋值操作符。几乎每一个二元操作符都有一个等价的二元赋值形式:由这个符号后接等号组成。
例如,下面两行是等价的:
$fred = $fred + 5; #没有用二元赋值操作符$fred+=5; #利用二元赋值操作符
20.。print()能完成这种工作。它把一个
标量参数作为参数,再把它不做修改的输出来。除非做了某些修改,否则其默认的输出是终端(显示器):
print “hello world/n”; #输出hello world,后接换行符print “The answer is ”;print 6 * 7;print “./n”;

也可以将一串值赋给print,利用逗号分开:
print “The answer is ”,6*7, “./n”;

21.当一个字符串由双引号括起来时,如果变量前没有反斜线,则变量会被其值内插◆。也就是说字符串中的标量变量◆将被
其值替换。
◆这和数学或统计学中的内插含义是不同的
◆还有一些其它的变量类型,在后面章节中将看到
$meal = “brontosaurus steak”;$barney = “fred ate a $meal”; #$barney 现在是“fred ate a brontosaurus steak”$barney = ‘fred ate a’. $meal; #同上

如果一个变量未被赋值,则将使用空值替换;
如果使用的是单独一个变量,是否使用引号没有影响。如:
print “$fred”; #引号是没有必要的
print $fred; #更好的写法
变量内插通常也叫做双引号内插,因为它在双引号中(而非单引号)才有效
变量名将是字符串中有意义的最长的那一个。这可能在当你需要在某次匹配就替换的情况下出问题。Perl 提供了一种类似
于shell 的分隔符:花括号({})。用花括号将变量名括起来。或者将字符串分隔成几个部分,再用连接符( . )串起来:
$what =“brontosaurus steak”;$n = 3;print “fred ate $n $whats./n”; #不是steaks,而是$whats 的值print “fred ate $n ${what}s./n”; #现在是使用变量$whatprint “fred ate $n $what”. “s./n”; #另一种方法print ‘fred ate ’. $n . ‘’. $what . “s./n”; #一种复杂的方法


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台