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语言入门
272
15
my $output_with_errors = `frobnitz -enable 2>&1`;
注意,这会让标准错误与标准输出的信息交织在一起,就像在终端上看到的那
样,当然可能因为缓冲的原因有顺序上的细微差别。如果你需要分别捕获标准输
出和标准错误,就得考虑使用更加麻烦的解决方案。比如使用标准
Perl
发行的模
IPC::Open3
,或者自己编程处理派生子进程相关的事宜,稍后会有展示。同样地,
被执行的命令也会继承
Perl
当前使用的标准输入。我们日常执行的命令大都不会使用
标准输入,所以没有这方面的问题。但是,如果
date
命令询问你要使用的时区(正
如我们之前假设的),就会有问题,因为提示文字“
which time zone
”会被送至标准
输出,成为捕获内容的一部分,然后
date
会试着从标准输入读进数据。由于用户根
本看不到提示文字,所以他不知道该输入数据!没多久,用户就会打电话给你,说你
的程序卡住了。
因此,请勿使用会读取标准输入的命令。如果你不太确定它是否会从标准输入读取数
据,请将标准输入重定向为从
/dev/null
读取数据,
Unix
下可这样做:
my $result = `some_questionable_command arg arg argh </dev/null`;
Windows
下可这样做:
my $result = `some_questionable_command arg arg argh < NUL`;
这样一来,被调用的
shell ...
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