Skip to Content
Perl语言入门
book

Perl语言入门

by Randal L. Schwartz, brian d foy, Tom Phoenix
August 2018
Beginner to intermediate
382 pages
7h 14m
Chinese
Southeast University Press
Content preview from Perl语言入门
高级
Perl
技巧
295
grep
操作符和经典
Unix
工具同名,这个工具会使用正则表达式从文件中找出匹配成
功的行。这个任务也能用
Perl
grep
完成,并且威力更强大些。现在我们从一个文
件中取出包含
fred
的行:
my @matching_lines = grep { /\bfred\b/i } <$fh>;
grep
还有一个更为简单的写法。如果条件判断只是一个简单的表达式,而不是整个代
码块,那么只要在这个表达式后面用逗号结束就可以了。下面就是刚才例子的简化版
本:
my @matching_lines = grep /\bfred\b/i, <$fh>;
grep
操作符在标量上下文中返回的是符合过滤条件的元素个数。在只需要统计文件中
符合特定条件的行的数量而不必关心每行内容的时候,就可以采取这种用法。原本我
们会先提取符合条件的行存到
@matching_lines
数组,然后再行统计:
my @matching_lines = grep /\bfred\b/i, <$fh>;
my $line_count = @matching_lines;
现在完全可以跳过保存中间数组的过程(也就不必创建数组分配内存),直接通过标
量上下文赋值操作实现:
my $line_count = grep /\bfred\b/i, <$fh>;
map
把列表数据变形
除了过滤器之外,对于列表还有一项经常要做的工作,那就是把列表数据变形。举
个例子,假设有一堆数字需要格式化成“金额数字”输出,就像第 ...
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

计算机科学导论:跨学科方法

计算机科学导论:跨学科方法

罗伯特 塞奇威克, 凯文 韦恩
Perl语言入门(第8版)

Perl语言入门(第8版)

Randal L. Schwartz, brian d foy, Tom Phoenix

Publisher Resources

ISBN: 9787564177911