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语言入门
292
16
种用法,即称为“
eval
字符串”的用法。这种形式的
eval
会把拿来的字符串直接当
Perl
源代码编译,然后执行,这就好比你手工在里面键入这段代码。请看下面的例
子,任何出现在字符串中的东西都会被当作
Perl
代码来解释执行:
my $operator = 'unlink';
eval "$operator \@files;";
如果关键字
eval
后面紧跟的是花括号围起来的代码块,正如本节绝大多数例子那
样,就无需担心——它们是安全的
eval
用法。
更高级的错误处理
每种语言都有一套自己处理错误的方式,但大多有一个称为异常(
exception
)的概
念。具体来说,就是尝试运行某段程序,如果出现错误就抛出(
throw
)异常,然后
等待后续负责接管处理(
catch
)这类异常的代码做相应处理。在
Perl
里面最基本的
做法是,用
die
抛出异常,然后用
eval
接管处理。我们可以通过识别保存在
$@
里面
的错误消息判断究竟出了什么问题:
eval {
...;
die "An unexpected exception message" if $unexpected;
die "Bad denominator" if $dino == 0;
$barney = $fred / $dino;
}
if ( $@ =~ /unexpected/ ) {
...;
}
elsif( $@ =~ /denominator/ ) {
...;
}
不过这类代码有诸多弊端,最明显的就是 ...
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