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版)
输入与输出
115
这两条语句实质上是不同的:
print STDOUT;
print $rocks_fh; #
错误,这应该不是你的本意
在第一个例子中,
Perl
知道
STDOUT
是文件句柄,因为它就是个裸字。由于其后没有
任何参数,所以它会打印默认变量
$_
中的内容。而在第二个例子中,
Perl
无法预先
判断
$rock_fh
是否为文件句柄,只有运行到这条语句时才知道变量里面保存的是不
是文件句柄,所以它只好假设标量变量
$rock_fh
是要输出的字符串变量。要解决这
样的问题并不难,只要用花括号围住文件句柄,
Perl
就能明白它的正确含义,即便这
个文件句柄保存在数组或哈希中也没关系:
print { $rocks[0] } "sandstone\n";
使用花括号指明目标文件句柄的时候,默认是不会打印
$_
的内容的,你得自己明确
写出来:
print { $rocks_fh } $_;
根据实际编程需要,你可以自己决定使用裸字还是标量变量。一般对于短小的程序,
比如系统管理员的工具脚本,用裸字就够了。而对于稍大一点的项目或应用程序,还
是建议使用标量变量,从而精确控制文件句柄的作用范围,方便调试和维护。
习题
以下习题答案参见第
313
页上的“第
5
章习题解答”一节:
1. [7]
写一个功能跟
cat
相似的程序,但将各行内容倒序后输出(有些操作系统
会有一个名为
tac
的类似工具)。假如用
./tac fred barney betty
来运行你
的程序,它的输出结果应该先是文件 ...
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