Skip to Content
Perl语言入门(第8版)
book

Perl语言入门(第8版)

by Randal L. Schwartz, brian d foy, Tom Phoenix
October 2022
Beginner to intermediate
390 pages
7h 5m
Chinese
Southeast University Press
Content preview from Perl语言入门(第8版)
标量数据
51
作为程序员,你总会不小心写出无限循环。终止它的方法和终止其他程序运行
一样,告诉操作系统帮你结束它。一般按下
Ctrl
C
即可退出。如果不行,看
下你用的操作系统的相关说明文档。
undef
如果还没赋值就用到标量变量,会发生什么?放心,系统不会报错,也绝不会中
止程序运行。在首次赋值前,变量的初始值就是特殊的
undef
值,表示未定义
undefined
),
Perl
不会在意:“既然这里空无一物,那就继续赶路好了。”如果把
这个“空无一物”当成数字用,它就会表现得像
0
;如果当成字符串用,它就会表现
得像空字符串。但
undef
本身既不是数字也不是字符串,它完全是一种独立类型的标
量值。
既然
undef
作为数字使用时会被视作数字
0
,我们可以很容易地构造一个数字累加
器,在开始累加前完全不用做任何初始化工作:
#
累加一些奇数
$n = 1;
while ($n < 10) {
$sum += $n;
$n += 2; #
准备好下一个奇数
}
print "The total was $sum.\n";
循环开始前,
$sum
的初始值是
undef
。第一次循环时,
$n
的值是
1
,所以循环里的第
一行会将
$sum
的值加上
1
。由于我们把
undef
当成数字用,相当于
0
,所以累加的结
果就是
1
。此后,变量被确定为数字类型,后面的运行一如往常。
同样的道理,串接字符串时也不用刻意初始化:
$string .= "more text\n";
如果
$string
的值起初是
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉
Perl语言入门

Perl语言入门

Randal L. Schwartz, brian d foy, Tom Phoenix

Publisher Resources

ISBN: 9787576602036