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/perl
use warnings;

如果看到不能理解的警告信息,可以使用diagnostics pragma,


通过它可以看到更详细的信息。perldiag 的mangage 中有对短的warning(警告)和长的diagnostic(诊断)的描述。


#! /usr/bin/perl
use 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’赋给$barney
blei@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”; #现在是使用变量$what
print “fred ate $n $what”. “s.\n”; #另一种方法
print ‘fred ate ’. $n . ‘’. $what . “s.\n”; #一种复杂的方法