-
minimal_perl_for_unix_and_linux_people.pdf下载
资源介绍
In this preface, I’ll tell you about the history of Minimal Perl and the origins of this
book.
THE HISTORY OF MINIMAL PERL
The seeds of this book were sown many years ago, when I was building up my knowl-
edge of Perl, the greatest programming language I’d ever encountered (before or since).
While reading a variety of books on the subject, I was surprised that the authors felt
obliged to delve into so many of the different but equivalent choices for expressing
every basic operation in the language, as well as each of the syntactic variations for
expressing any one of those choices.
As an example, I’ve shown here some of the available choices for expressing in Perl
the simple idea that B should be executed only if A is True (with those letters repre-
senting arbitrary program elements). Both forward and backward variations for
expressing the dependency are included:1
Although some are inclined to present symptoms like these of Perl’s complexity and
redundancy as evidence of its “richness,” “versatility,” or “expressiveness,” many Perl
novices would surely have a different reaction—that Perl is needlessly complex and too
hard to learn.
Minimal Perl was created to address these obstacles presented by Perl’s redundancy
and complexity. By emphasizing Perl’s grep, sed, and awk-like features, and relying
Forward
Backward
A and B;
B if A;
A && B;
B if A;
A and do { B };
do { B } if A;
A && do { B };
do { B } if A;
if (A) { B };
B if A;
unless (!A) { B };
B unless !A;
1Before you despair, I should point out that Minimal Perl uses only 2 of these variations—which is all
anybody needs!
xx
on concepts such as inputs, filters, and arguments, it allows Unix1 users to directly apply
their existing knowledge to the task of learning Perl. So rather than being frustrated
with Perl’s complexities and disappointed with its steep learning curve, they quickly
and painlessly acquire the ability to write useful programs that can solve a wide variety
of problems.
My first public presentation on this subject was in a tutorial called “Minimal Perl
for the Impatient” at the YAPC::Europe 2001 conference2 in Amsterdam, the Nether-
lands. The eagerness with which that audience devoured the material confirmed my
hunch that many were hungering for an easier way to learn Perl. Since then, I’ve
taught Minimal Perl at other professional conferences, at meetings of Perl Users
Groups in the US and Canada, and to many Fortune 500 companies.
THE GENESIS OF THE BOOK
By 2001, the Minimal Perl approach had convincingly proven its ability to help Unix
people acquire Perl skills with relative ease. But many who could appreciate its benefits
never get to see conference presentations or attend corporate training classes, so I
became interested in making this information available to a wider audience.
However, I had some serious reservations about embarking on a book, having
heard many sobering stories from colleagues about the travails of authorship. Fortu-
nately, I received some encouragement that was instrumental in helping me decide to
go forward with this project, from a good friend—Dr. Damian Conway.
A little help from my friend
Damian and I first met after my presentation on the first “Perl Beautifier” at The Perl
Conference in 1998,3 when he gently informed me that I could have categorized Perl
source code into its constituent elements by using a program he had written (in Perl’s
module format), rather than writing my own from scratch to attempt that difficult task.
After examining more of his ingenious modules and reading his excellent book
Object Oriented Perl,4 I soon realized that Damian had a deeper understanding of Perl
than almost anyone else. To allow others to benefit from his insights, I arranged for
him to periodically teach Perl classes through my Seattle-based company (Consultix)
and also to present talks to our Seattle Perl Users Group (SPUG, aka Seattle.pm). This
worked out wonderfully for Seattleites, who would learn practical Perl incantations
1In this book, Unix is shorthand for “UNIX, Linux, and related operating systems,” as detailed in the
“Essential terminology” section of “About this book.”
2See this book’s glossary for the definition of YAPC.
3For more details, see http://TeachMePerl.com/perl_beautifier.html.
4His book is described at http://www.manning.com/conway. It’s for a more advanced audience than
this one.
xxi
from him during the formal daytime sessions and then enjoy his overtly hilarious (yet
covertly educational) conference-style presentations by night.
Damian is probably still blushing from my effusive introductions of him as
•The Perl Wonder from Down Under (because he’s an Aussie), and
•The Supreme Modulator of Perl.1
But I feel vindicated, because by now everybody knows I was correct in my estimation
of his uniqueness and importance to the Perl community.
An auspicious weather non-event
During one week while Damian was in Seattle as a visiting instructor for Consultix, we
took an extended bike ride along the shore of Lake Washington together—and we
didn’t even get drenched by rain! As a long-time Seattleite, I knew this to be an
extremely auspicious sign, so I seized the opportunity to tell him about my interest in
writing a Minimal Perl book. Being a fellow fan of the AWK language (which is Perlish,
but simpler)—and having a keen interest in making Perl more accessible to novices—
he expressed enthusiasm for the project and offered some interesting ideas about how
to approach it.
The combination of my ideas with some of Damian’s—along with sufficient fer-
mentation and seasoning—ultimately led to the format, content, and approach of the
book you now hold. The result is a volume that teaches Perl in ways no book has done
before! I hope you enjoy reading it as much as I did writing it.