- Paperback: 224 pages
- Publisher: O'Reilly Media, Inc. (June 9, 2003)
- Language: English
- ISBN-10: 0596004788
- ISBN-13: 978-0596004781
|
Softpanorama |
May the source be with you, but remember the KISS principle ;-)
Softpanorama Search
|
| Open | Reference | ||||||
| Win32 | Humor | Etc |
Contrary to the popular opinion, the introductory O'Reilly books on Perl are no longer the best. I really do no not recommend buying Learning Perl as your first book or second or third book (unless you buy it on company money ;-).
At the same time Learning Perl on Win32 is simply junk "make money fast" book, not a good book as Camel Critique suggested. Beware all second editions of Perl books from O'Reilly ;-). Paradoxically most of them are disappointing (BTW Learning Perl is more than disappointing -- it's simply weak and only the first edition has, mostly historical now, value). A reader can save money by getting other better books instead.
There is a better then Learning Perl, albeit slightly overcomplicated open introductory book by Simon Cozens Beginning Perl (for those who already know at least one programmer language; there is also a second edition with primary author listed as by James Lee instead of Simon Cozens which paradoxically is almost a twice shorter book).
Also better are Perl Developer's Guide (more basic intro book), Perl 5 Interactive Course : Certified Edition (the main problem with it is that it overstresses regular expression, at least more than I like in the beginner-oriented book)) and Perl Black Book are not from O'Reilly and any of them is probably a better choice for majority of people as an introductory books. See more information below.
If you know some HTML and want to learn Perl then you probably will be better off with a CGI book like CGI Programming 101 (see also cgi101.com ; the first six chapters of CGI Programming 101 are available free on this site) or for those who like illustrated books Perl and CGI for the World Wide Web Visual QuickStart Guide, Second Edition
Although the core of the language is very stable, Perl 5 is still a moving target and for non-introductory books the age of the book still matter. The current version is 5.8 and the book should cover it as it is better then previous versions (5.6 and 5.0). There soon will be 5.10 version that among other things introduces switch statement into the language.
Also a major revision of the language (version 6.0) is in works, but due to overcomplexity and errors in language design chances of displacing of the version 5 are pretty slim. Recent version 5.10 incorporates some ideas from version 6 into version 5 framework. I think that version 6 is several years away from implementation; that means that buying a 5.8-5-10 oriented book is a pretty safe bet. In general, I recommend Perl books that are less than five years old. Please note that CGI-related books not included in this section. They are covered elsewhere.
The books that have e-text freely available or at least have it on accompanying CD have a better value and you can put with some minor shortcomings due to the advantages of having full e-text (for example that value of index is less important -- one can search e-text instead). Old David Till's book (see below open books ) was a good introductory book that used to be freely available from the http://www.informit.com/ -- Macmillan online library and might still be found somewhere on the Internet...
Although the quality is very uneven and the CD lucks any good intro book, older, cheaper versions of Perl CD Bookshelf from O'Reilly might be an interesting alternative to buying printed version of Cookbook from O'Reilly as it is a reference. It's more convenient to have it in HTML than in a printed edition...
There are also some underestimated books on Perl. Personally I like Perl Programming Companion by Nigel Chapman. This is not very popular book among Amazon.com readers, but I think that here (like in some other cases) they are wrong ;-). "Lemming effect" quite pronounced in reviews of Learning Perl on Win32 and several other horrible but highly praised by conformists O'Reilly books probably is present here but with a negative sign. Programmers with experience in any other language can definitely benefit from this nice book.
Please note that Camel Critiques -- Tom Christiansen's reviews of Perl book are biased and from my point of view reviews are unfair to non-O'Reilly authors. Please take them with a grain of salt -- even with disclaimer that he has a vested interest in promoting O'Reilly books. Here is my (slightly skeptical ;-) opinion about on one of books that was highly praised by Tom Christiansen in Camel Critiques -- Learning Perl on Win32.
Amazon.com readers reviews can provide you with a balanced opinion if you can understand that extremes meet and some people trash books just to prove themselves -- for the same reason as other people overevaluate books for religious or loyalty reasons like happened with Learning Perl, Programming Perl, etc. I recommend discarding too positive and too negative opinions unless a reviewer provides facts that substantiate his/her point of view.
And last but not least -- please question my own reviews too. My background and priorities can be different from yours and I learned Perl after several other languages. That means that books that are optimal for me can be sub-optimal for you. Moreover I can confess that my opinion about books are changing as I use them in teaching Perl courses, sometimes substantially.
Dr. Nikolai Bezroukov
|
You can use Honor System to make a contribution, supporting this site |
P.S. Here I would like to reproduce One Minute Perl Book Reviews -- pretty entertaining and educating test for Perl Books ;-). If a large number of elements in array test fail that the book is really highly suspect. I am not sure about the value of positive results (actually most of elements discussed in the test are probably absent in any introductory book). For the actual marks of a number of book including Medinets' book see the paper.
"Its not about the acid in the paper, its about the Crack in the author."
Seems like everyone is writing a Perl book. The most disturbing part is that they're being written by people who have nothing to do with Perl. How to decide what's crap and what's not?
Worry no more! After many mirth-filled hours of flipping through many an awful Perl book, I have come up with a simple one-minute litmus test to determine if the book you're holding is worth the tree its printed on.
Historical Note This page was written back in 1999 when the flood of Perl books hit the market.
The Perl Book Litmus Test
Remember, the point of this test is to find bad books and there can only be negative results with this test. A book which passes all the tests put forth here CAN STILL SUCK.
The following tests check the five things books and beginning Perl programmers most commonly screw up. Its by no means intended to be cannonical, just a quick way to look for read flags. So flip to the index. Look up the following tidbits and answer the questions.
- localtime
- Due to localtime's ahem "vintage" interface, date generation is usually botched in Perl. Its important that a book has a good discussion of localtime and its caveats. Does it [explicitly] state that it returns the number of years since 1900? Does it mention that when used in scalar context it returns a nicely formatted date? Does it avoid things like `date`?
- open || die $!
- "Why doesn't $line = <FILE> work?" is one of the most common newbie questions. Its extremely important that a book drills it into the reader's head that all system calls should be checked and proper error messages returned. This means putting some sort of error checking on all system calls (not just open()), using and discussing $! and other good error messages.
- srand
- Not a common problem, but something often gotten wrong. If a book does drag out srand(), it often fails to point out that it should be called only once. (If srand is never mentioned, that's okay.)
- array size
- Does it clearly say that an array will return its number of elements in scalar context, or does it use/imply
$num = $#array + 1;- flock
- Any CGI program writing to a file is going to run into file corruption issues pretty fast. If the book covers topics which will lead to concurrent file acces, it should talk about flock(). Does it discuss and use flock instead of lockfiles? (ie. setting some .lock file instead of using flock()).
- Portable Constants
- When performing flocking, socket operations or sysopens does it use the constants defined by Perl (LOCK_SH and friends), or do they define their own unportable constants? If the subject never comes up that's ok.
|
You can use Honor System to make a contribution, supporting this site |
Great for Teaching Perl, February 14, 2007 F. L. Fabrizio
- Paperback: 464 pages
- Publisher: Apress; 2 edition (August 30, 2004)
- Language: English
- ISBN-10: 159059391X
- ISBN-13: 978-1590593912
I use this book to teach Perl in a university course. I feel it does a very good job at exposing just enough of Perl to make it useful without confusing beginning students. I chose this over O'Reilly's Learning Perl (also a good book) because this book goes into References, Modules and a bit of OO Perl, and also has what I feel is slightly better treatment of shortcuts like $_ as well as lexically-scoped variables with 'my'. O'Reilly has broken these topics across two books (Learning Perl and Intermediate Perl), both fine books but I only want the students to have to buy one book. I feel that Perl is not very useful without references, so that was the major reason for switching to this book for a beginning Perl course. I highly recommend it.
Beginning Perl, 2nd Edition, October 6, By T. Barr (Mt. Prospect, IL United States)
Beginning Perl, 2nd edition, by James Lee, et al., is a splendid
introduction to the Perl programming language, version 5.8.3. The flow
of the book is logical, straightforward, and highly readable. Text is
heavily sprinkled with program examples that the reader can easily try
out along the way, as well as exercises at the end of most chapters,
with solutions in the appendix. Chapters are short, clear, and
engaging.
After a brief discussion of the history of Perl and a listing of
numerous helpful online resources, the book quickly moves on to the
logistics of running a Perl program, followed by descriptions of basic
program elements and control flow. Then it's ahead to more
sophisticated data elements - lists, arrays, and hashes - and finally
functions and subroutines.
After a solid and seemingly effortless explanation of these "basics,"
the book moves to one of the most powerful features in Perl - regular
expressions - and how these can be used to access files and data. From
there, the discussion expands to string processing and references. The
book concludes with discussions of more "advanced" Perl features,
including object-orientation, modules, and use with webservers and
databases.
Regardless of topic, the writing style stays crisp, clear, and
example-filled, making this book a highly effective and enjoyable way to
get a jump-start into Perl programming for the novice or a quick
refresher for the expert wanting a Perl 5 update.
Copyright
Preface
Chapter 1. Advanced Techniques
Section 1.1. Introspection
Section 1.2. Messing with the Class Model
Section 1.3. Unexpected Code
Section 1.4. Conclusion
Chapter 2. Parsing Techniques
Section 2.1. Parse::RecDescent Grammars
Section 2.2. Parse::Yapp
Section 2.3. Other Parsing Techniques
Section 2.4. Conclusion
Chapter 3. Templating Tools
Section 3.1. Formats and Text::Autoformat
Section 3.2. Text::Template
Section 3.3. HTML::Template
Section 3.4. HTML::Mason
Section 3.5. Template Toolkit
Section 3.6. AxKit
Section 3.7. Conclusion
Chapter 4. Objects, Databases, and Applications
Section 4.1. Beyond Flat Files
Section 4.2. Object Serialization
Section 4.3. Object Databases
Section 4.4. Database Abstraction
Section 4.5. Practical Uses in Web Applications
Section 4.6. Conclusion
Chapter 5. Natural Language Tools
Section 5.1. Perl and Natural Languages
Section 5.2. Handling English Text
Section 5.3. Modules for Parsing English
Section 5.4. Categorization and Extraction
Section 5.5. Conclusion
Chapter 6. Perl and Unicode
Section 6.1. Terminology
Section 6.2. What Is Unicode?
Section 6.3. Unicode Transformation Formats
Section 6.4. Handling UTF-8 Data
Section 6.5. Encode
Section 6.6. Unicode for XS Authors
Section 6.7. Conclusion
Chapter 7. POE
Section 7.1. Programming in an Event-Driven Environment
Section 7.2. Top-Level Pieces: Components
Section 7.3. Conclusion
Chapter 8. Testing
Section 8.1. Test::Simple
Section 8.2. Test::More
Section 8.3. Test::Harness
Section 8.4. Test::Builder
Section 8.5. Test::Builder::Tester
Section 8.6. Keeping Tests and Code Together
Section 8.7. Unit Tests
Section 8.8. Conclusion
Chapter 9. Inline Extensions
Section 9.1. Simple Inline::C
Section 9.2. More Complex Tasks with Inline::C
Section 9.3. Inline:: Everything Else
Section 9.4. Conclusion
Chapter 10. Fun with Perl
Section 10.1. Obfuscation
Section 10.2. Just Another Perl Hacker
Section 10.3. Perl Golf
Section 10.4. Perl Poetry
Section 10.5. Acme::*
Section 10.6. Conclusion
Colophon
About the Author
Colophon
- Paperback: 342 pages
- Publisher: O'Reilly Media, Inc.; illustrated edition edition (July 16, 2007)
- Language: English
- ISBN-10: 0596527241
- ISBN-13: 978-0596527242
- Product Dimensions: 9.1 x 7 x 0.9 inches
- Examples
Contents
Introduction: Becoming a Master
What It Means to Be a Master
Who Should Read This Book
How to Read This Book
What Should You Know Already?
What I Cover
What I Don't Cover
Advanced Regular Expressions
Secure Programming Techniques
Debugging Perl
Profiling Perl
Benchmarking Perl
Cleaning Up Perl
Symbol Tables and Typeglobs
Dynamic Subroutines
Modifying and Jury-Rigging Modules
Configuring Perl Programs
Detecting and Reporting Errors
Logging
Data Persistence
Working with Pod
Working with Bits
The Magic of Tied Variables
Modules As Programs
Further Reading
brian's Guide to Solving Any Perl Problem
ColophonIntroduction: Becoming a Master
This book isn't going to make you a Perl master; you have to do that for yourself by programming a lot of Perl, trying a lot of new things, and making a lot of mistakes. I'm going to help you get on the right path. The road to mastery is one of self-reliance and independence. As a Perl master, you'll be able to answer your own questions as well as those of others.
In the golden age of guilds, craftsmen followed a certain path, both literally and figuratively, as they mastered their craft. They started as apprentices and would do the boring bits of work until they had enough skill to become the more trusted journeymen. The journeyman had greater responsibility but still worked under a recognized master. When he had learned enough of the craft, the journeyman would produce a "master work" to prove his skill. If other masters deemed it adequately masterful, the journeyman became a recognized master himself.
The journeymen and masters also traveled (although people disagree on whether that's where the "journey" part of the name came from) to other masters, where they would learn new techniques and skills. Each master knew things the others didn't, perhaps deliberately guarding secret methods, or knew it in a different way. Part of a journeyman's education was learning from more than one master.
Interactions with other masters and journeymen continued the master's education. He learned from those masters with more experience and learned from himself as he taught journeymen, who also taught him because they brought skills they learned from other masters.
The path an apprentice followed affected what he learned. An apprentice who studied with more masters was exposed to many more perspectives and ways of teaching, all of which he could roll into his own way of doing things. Odd teachings from one master could be exposed by another, giving the apprentice a balanced view on things. Additionally, although the apprentice might be studying to be a carpenter or a mason, different masters applied those skills to different goals, giving the apprentice a chance to learn different applications and ways of doing things.
Unfortunately, we don't operate under the guild system. Most Perl programmers learn Perl on their own (I'm sad to say, as a Perl instructor), program on their own, and never get the advantage of a mentor. That's how I started. I bought the first edition of Learning Perl and worked through it on my own. I was the only person I knew who knew what Perl was, although I'd seen it around a couple of times. Most people used what others had left behind. Soon after that, I discovered comp.lang.perl.misc and started answering any question that I could. It was like self-assigned homework. My skills improved and I got almost instantaneous feedback, good and bad, and I learned even more Perl. I ended up with a job that allowed me to program Perl all day, but I was the only person in the company doing that. I kept up my homework on comp.lang.perl.misc.
I eventually caught the eye of Randal Schwartz, who took me under his wing and started my Perl apprenticeship. He invited me to become a Perl instructor with Stonehenge Consulting Services, and then my real Perl education began. Teaching, meaning figuring out what you know and how to explain it to others, is the best way to learn a subject. After a while of doing that, I started writing about Perl, which is close to teaching, although with correct grammar (mostly) and an editor to correct mistakes.
That presents a problem for Mastering Perl, which I designed to be the third book of a trilogy starting with Learning Perl and Intermediate Perl
In short, I can't. I'll teach you what I think you should know, but you'll also have to learn from other sources. As with the old masters, you can't just listen to one person. You need to find other masters, too, and that's also the great thing about Perl: you can do things in so many different ways. Some of these masters have written very good books, from this publisher and others, so I'm not going to duplicate those topics here, as I discuss in a moment.
What It Means to Be a Master
This book takes a different tone from Learning Perl and Intermediate Perl, which we designed as tutorial books. Those mostly cover the details of the Perl language and only a little on the practice of programming. Mastering Perl, however, puts more responsibility on you, the reader.
Now that you've made it this far in Perl, you're working on your ability to answer your own questions and figure out things on your own, even if that's a bit more work than simply asking someone. The very act of doing it yourself builds your experience as well as not annoying your coworkers.
Although I don't cover other languages in this book, like Advanced Perl Programming, First Edition, by Sriram Srinivasan (O'Reilly) and Mastering Regular Expressions by Jeffrey Friedl (O'Reilly) do, you should learn some other languages. This informs your Perl knowledge and gives you new perspectives, some that make you appreciate Perl more and others that help you understand its limitations.
And, as a master, you will run into Perl's limitations. I like to say that if you don't have a list of five things you hate about Perl and the facts to back them up, you probably haven't done enough Perl. It's not really Perl's fault. You'll get that with any language. The mastery comes in by knowing these things and still choosing Perl because its strengths outweigh the weakness for your application. You're a master because you know both sides of the problem and can make an informed choice that you can explain to others.
All of that means that becoming a master involves work, reading, and talking to other people. The more you do, the more you learn. There's no shortcut to mastery. You may be able to learn the syntax quickly, as in any other language, but that will be the tiniest portion of your experience. Now that you know most of Perl, you'll probably spend your time reading some of the "meta"-programming books that discuss the practice of programming rather than just slinging syntax. Those books will probably use a language that's not Perl, but I've already said you need to learn some other languages, if only to be able to read these books. As a master, you're always learning.
Becoming a master involves understanding more than you need to, doing quite a bit of work on your own, and learning as much as you can from the experience of others. It's not just about the code you write, because you have to deal with the code from many other authors too.
It may sound difficult, but that's how you become a master. It's worth it, so don't give up. Good luck!
Good, but not too essential for the experienced, January 31, 2008
This book is not essential, if you already have several years of experience with Perl, if you know who are Damian Conway, Randal Schwartz and Abigail, and if you know the meaning of weird words like CPAN, Perl Monks and "zero-width positive look-ahead assertion".
By Amir Aharoni (Israel) - See all my reviews
If you don't know what these things are, then with a little motivation you can find everything about them using Google without the need for this book. If this would be any other book about programming, i'd give it no more than 3 stars.
However, brian d foy's first-person writing style is very readable and enjoyable, which awards this book an extra star, and does make this book a good buy for people who learned the basics from Learning Perl or Programming Perl. Furthermore, as great and relevant as The Camel Book is, its last edition was published in 2000, and it is already a little dated, in terms of both the technology and the culture of Perl, so Mastering Perl is a pretty good way to get up-to-date.
To sum up - while this book is not as essential as Programming Perl, Perl Cookbook or Perl Best Practices, it is certainly up to the high standards set by those O'Reilly titles.Intermediate Perl Randal L. Schwartz,Tom Phoenix,brian d foy Books
By raul parolari (Daly City, Ca, Usa) - See all my reviewsThree years later, Sailors upgrade Perl navigation software, April 4, 2006
This book updates the 2003 "Perl References, Objects & Modules" from the same authors, which described (in a humorous but also realistic way) a group of "Sailors" writing navigation software.
First, I summarize the major changes of the new version:
1) The description of the methodology to partition software has been extended, leading to 3 separate chapters (3, 10, 15). I must say that it is not very clear why they are scattered in that order. I personally concluded that they are best read sequentially and in this order: first Chapter 10, "Building Larger Programs" (where the Sailors start reusing software first via 'cut and paste', then come to sanity via eval/do/require and finally 'package'); then Chapter 2, "Using Modules" (the natural follow up to 'package'); finally Chapter 15, "Exporter". Read in this order, they are a comprehensive and excellent overview of this subject. In the order presented in the book, they are odd (why would the sailors, after learning to use Modules in chapter 3, start 'cut and paste' and 'eval files' to reuse software in chapter 10?).
2) A new chapter "Intermediate Foundations", with a good section reminding the differences between 'eval string' versus 'eval {block }'.
3) The Testing area is enhanced with a new chapter "Advanced Testing". Information on CPAN & distributions is updated in several chapters. Also, while the examples in the book are largely the same, code style is improved; for example, the chapter on grep/map uses the 'grep { filter } array' and 'map { transform } array' style, rather than the less clear ', Expr' style of the first edition.
In all, a better book (aside from the absurd chapter organization choice remarked above).
For the ones who have not read the 1st edition, the strongs points of the rest of the book are:
a) the chapters 5, 6 on Data Structure manipulations. The best is the way that anonymous arrays & hashes are presented, showing how they simplify the code of an example (as their introduction removes a jungle of temporary variables). Autovivification follows, with another excellent example (a "data reduction report generator").
b) chapter 7 "Subroutine References", identical to the first edition, one of the best chapters, introducing anonymous subroutines by continously refining an example, and then doing the same for "Closures". The only regret is that the final example on closures is a bit dull (as the "findFile" runs always to the end in one shot), obscuring the central capability of closures to keep each its context simultaneously (imagine an example that computes different Dna strands alternating between them, or, to stay with the book's theme, moves different boats from their initial position...). Still, for people (like me) coming from static languages, the chapter was an authentic gift.
c) chapter 9 "Reference Tricks", with a great presentation of sorting, the famous Schwartzian Transform, and the processing of recursively defined data.
d) finally, the chapters on Objects, and the Class Hierarchy. Remark the simple and effective presentation of Inheritance, used to factor out code common to some classes (without indulging in any of the mystical overtones that often accompany this OO subject).
The points where the book is less perfect:
-) Although the book wants to stop at the "Intermediate level", it could at least indicate to the reader subjects to be developed; for example, closures and mod_perl (problems with Cgi under 'registry'), need of caution with unwanted autovivifications (when testing for existence), etc. Role of lexicals vs local should also be better explained.
-) Chapter 4, on References, attacks the subject of (de)referencing nested data structures. The central problem (known to strike terror in Perl tests and interviews): why do we need to write @{ $x[0] } to retrieve the array referenced by the first element of array @x? Rather than ingenious rules on "when braces are needed" and "when they can be lifted", I think it would be best to tell the facts:
"Gentlemen: the dark secret here is that the sigils $, @, % bind more tightly than the [], {} and -> subscripts. This forces us to place braces around $x[0] in the previous example and write @{ $x[0] }. If instead we wrote @$x[0], Perl would try to retrieve a slice (element 0) of the array referenced by scalar $x (that was not our case). Got that? now, lets' be brave: what if we have a reference $ref to a list of lists and we want one of the far lists?
In this case, we must write @{ $ref->[$i] } to allow $ref to work undisturbed on the first list, and (only then!) collect the far list. To get a slice of the far list (say, elements $m and $n), just append [$m, $n] to the expression just written. If you have hashes instead of arrays, replace [] with {}, and all the rest is identical. END OF STORY".
Yes, the previous paragraph is not a cute fairy tale, and it requires some experimenting to be interiorized. But, once you do, isn't this inmensely simpler (6 lines!) to remember? Fairy tales are sweet but do not make you strong!
-) Also: why teach first ${$item}[1] and only later introduce the arrow notation $item->[1]? Invert the order: use the arrow notation (universally intuitive) to develop the examples, mentioning briefly (for masochists and obfuscators) the other notation.
In conclusion: in spite of its shortcomings and defects, this is a very useful book to progress in Perl, as its "progressive refining method" forces you to a constant mental gymnastic to reach every formulation (the opposite of the "cut and paste" culture).
One last note: after reading the chapters on Objects, it is interesting to plunge into D.Conway's "Perl Best Practices" (see my review), chapter 15 "Objects", to examine a different object implementation ("the inside-out objects"). Aside from the fascinating thesis exposed there, the fact that one can easily acquire 2 different perspectives on how to construct (internally) Objects in Perl, shows perhaps that this book allows the reader to begin moving beyond the "intermediate level".
|
|
One of the best Perl books out there, June 24, 2004
A quote on the front cover of this book says "if you code in Perl then you need to read this book". That's a pretty bold claim to make. It made me think of the hyperbole on covers of books that claim to teach you to program in Perl in just a few days. But this book is published by Addison Wesley, who are a well respected technical publisher of technical books and the quote is from Adam Turoff who certainly knows what he's talking about when it comes to Perl programming. So in this case the claim isn't hyperbole. The book really is one that I want every Perl programmer to read.
Reviewer: David Cross "davorg" (London, UK) - See all my reviews
Perl gets a lot of bad press from people who claim that it encourages people to write unreadable code. Whilst there's certainly a lot of very bad Perl code out there I think that's more a sign that it's used by a lot of people who don't know how to program than a reflection on the language itself. And that's where this book comes in. It assumes that you are familiar with the syntax of Perl but that you've never really been shown how to use it effectively. Which is a situation that many Perl programmers find themselves in.
Perl Medic is actually targetted at people who have to maintain older Perl code written by someone else, but I think that the information it contains is just as useful to anyone coding in Perl. Peter Scott has a lot of experience in writing Perl and in training other people to write Perl and the distillation of that experience and knowledge into these 300-odd pages mean that there are few Perl programmers who won't pick up something useful from this book.
The main emphasis in the book is on increasing the maintainability of code. The techniques are wide-ranging. I particularly enjoyed the examples of refactoring programs and the coverage of using modules from CPAN. Two other very good sections are the one on antipatterns in chapter 4 and the one on cargo cult programming in chapter 6. Together these sections give a programmer a number of easy to recognise quick wins when improving existing code and a checklist of things not to do when writing new code.
There are a couple of niggles. I've already mentioned that I think the book has been slightly mis-targetted and that it should have been aimed at anyone writing Perl code. The other problem that I had was that the medic analogy that runs through the book gets a bit strained at times. But these are only minor and they shouldn't prevent you from adding this book to your library.
In fact, all in all, the quote on the front cover is pretty accurate.
A good book with a misleading title, May 18, 2004
Reviewer: A reader
While the "medic" metaphor recurs throughout the book, most of the material isn't directly related to repairing old code. Instead, this is a collection of best practices for new code. (The author recommends rewriting existing code if at all possible.) It ends up resembling another excellent Perl title, Joseph Hall's Effective Perl Programming. Good company to keep. Perl Medic has the advantage of being newer, and of covering a bit more material. The writing style is very easy to read, and the order of presentation works well. An excellent title for any intermediate-level Perl programmer.
One of the best Perl Books out there, April 24, 2004
A quote on the front cover of this book says "if you code in Perl then you need to read this book". That's a pretty bold claim to make. It made me think of the hyperbole on covers of books that claim to teach you to program in Perl in just a few days. But this book is published by Addison Wesley, who are a well respected technical publisher of technical books and the quote is from Adam Turoff who certainly knows what he's talking about when it comes to Perl programming. So in this case the claim isn't hyperbole. The book really is one that I want every Perl programmer to read.
Reviewer: David Cross "davorg" (London, UK) - See all my reviews
![]()
Perl gets a lot of bad press from people who claim that it encourages people to write unreadable code. Whilst there's certainly a lot of very bad Perl code out there I think that's more a sign that it's used by a lot of people who don't know how to program than a reflection on the language itself. And that's where this book comes in. It assumes that you are familiar with the syntax of Perl but that you've never really been shown how to use it effectively. Which is a situation that many Perl programmers find themselves in.
Perl Medic is actually targetted at people who have to maintain older Perl code written by someone else, but I think that the information it contains is just as useful to anyone coding in Perl. Peter Scott has a lot of experience in writing Perl and in training other people to write Perl and the distillation of that experience and knowledge into these 300-odd pages mean that there are few Perl programmers who won't pick up something useful from this book.
The main emphasis in the book is on increasing the maintainability of code. The techniques are wide-ranging. I particularly enjoyed the examples of refactoring programs and the coverage of using modules from CPAN. Two other very good sections are the one on antipatterns in chapter 4 and the one on cargo cult programming in chapter 6. Together these sections give a programmer a number of easy to recognise quick wins when improving existing code and a checklist of things not to do when writing new code.
There are a couple of niggles. I've already mentioned that I think the book has been slightly mis-targetted and that it should have been aimed at anyone writing Perl code. The other problem that I had was that the medic analogy that runs through the book gets a bit strained at times. But these are only minor and they shouldn't prevent you from adding this book to your library.
In fact, all in all, the quote on the front cover is pretty accurate.
Writing CGI Applications with Perl
It's very rare for a book to have 17 five-star reviews. Might really be good book.
PERL for programmers only, February 1, 2001
This is a combination of reference and learning. I would not advise this for a person trying to learn PERL as their first language, but if you already have a grasp of C++, Java, VB, Python or some other complex scripting language then this is ideal. So we do not have the first three chapters explaining what a program is. There is a useful rip-out card with most of the syntax. PERL is full of obscure symbols and patterns such as $_[0] or $] or even /^((\((\d{3}\))? ?\d{3}-\d{4},? *)+$/ (which locates a telephone number). The book explains them concisely and provides reference tables which are useful after you have mastered the fundamentals. If you want a more gentle entry then something like "PERL and CGI for the World Wide Web" by Castro will lead you in a more 'human' way. It's excellent, but after you have been through it it will be placed on the shelf - it's not a reference document. If you want lots of complex examples so you can play round with pre-existing code then look at "Mastering PERL 5".
Reviewer: Paul Cotter (see more about me) from Miami, Fl United States PCLLBB (plus the rip-out card) is the book I keep within arm's length. The blank pages at the back I have written in as a secondary index to the tables. Incidentally the index is good. The only problem (as with all indexes) is if you do not know what you are looking for. For example, to remove a line feed you use chomp() and you can look up truncate, line feed, substring etc and not find it. This is where you need your own index!
The best way of learning Perls..., February 21, 2002
In a line, buy this book if you want to start programming in perl
Reviewer: rarmente from West New York, NJ - United States I started reading this book 5 days ago, and I already consider myself a perl programmer. I am a computer engineering student at Stevens Institute of Tech and my main focus of study is network security from a programmer standpoint. After a couple of days reading this book, I could already create simple client/server applications. In addition, I learned how to handle files in numerous ways, and how to work with their content "you will be amazed how easy this is done in Perl" and even formating text, creating DBM Database files etc. Object oriented programming is very well explained and finally CGI scrips are also very well presented "with lots of security warnings." I would give this book six stars if I could since it does its job VERY well! My extensive programming experienced really helped me in the reading process, but the language and examples are so clear that even newbies in programming could assimilate the content easily!!! You can contact me at rarmente@stevens-tech.edu if you have further questions.
Steve Oualline
After years of trying, I've finally learned Perl. And it's all thanks to this book.Speak Perl with a C Accent, April 30, 2003
Reviewer: Noah Green (see more about me) from New York, NY USA
My biggest obstacles to learning Perl have always been: the language's twisted, almost willfully obscure syntax, and the chattiness, annoying humor, and equally obscure tone of the language's leading book for beginners, which I will leave nameless (hint: there's an animal on the cover.) It often seems as if both the book and the language take a perverse pride in being so arbitrary, riddled with exceptions and special cases, and overly complex. I'm sure most Perl people will disagree with me, but most Java and C/C++ folks I know would not. We are really past the point in history where it's funny or cute for a language to be so difficult and obscure. More than ever, time is money, the latter of which is in far shorter supply since the dot-com crash. We (and our bosses) just want to get things done. Not everyone wants to be a funny hacker with a funny t-shirt who thinks it's funny when no one else can understand their code. Unfortunately, while Perl is the champion of the heavy-lifting in text processing, its extremely flexible and often counter-intuitive syntax can make these benefits inaccessible to many programmers. Furthermore, the unnamed introductory book has a chatty folksy, verbose tone that seems to deepen and celebrate these faults.
Oualline's book turns out to be the antidote. Using a brief, business-like tone, the author brings the logic and organization of the C language to bear in his approach to teaching and using Perl. Here's a quote from the book that sums up Oualline's mindset: "Perl's designers have stated that their philosophy in designing Perl is 'There's more than one way to do it.' My philosophy is a little different: 'There is only one clearest way to do it.'" Basically, by taking a single, C-flavored route through Perl's syntax, shunning its more confusing and counter-intuitive elements, Oualline provides you with an empowering, working knowledge of the language. Once he gets you there, you finally see just how awesome a language Perl can be, particularly for reporting and system administration.
In short, Oualline teaches you to speak Perl with a C accent.
One example of this is the way he recommends that you write Perl subroutines. Contrary to nearly every published piece of Perl documentation, he tells you to declare all of them with parameter specifications. That is, if you are writing a subroutine called "do_it" that will always accept two scalar parameters, write:
"sub do_it ($$) { . . . }" instead of "sub_doit { . . . }".
Sure, this is less fun and less flexible than not specifying parameters, which Perl will allow you to do. But in Oualline's opinion, "[that] form of parameter passing should be avoided. By using a parameter specification, you give Perl the capability to do valuable parameter checking. Leave out the parameter specification, and you invite chaos." Like I said, this goes against all conventional Perl wisdom, but for people who are used to mainstream, highly-structured, strongly-typed languages, it definitely makes thinking about Perl much easier.
The book has a few flaws and omissions. For example, while stressing that we should specify parameters, Oualline forgets to mention that this means we must either put subroutine declarations at the beginning of a progam, or use forward references. Given his emphasis on parameter specification, he should have mentioned this. Also, his discussion of parameter passing is incomplete - he does not explain how directly accessing the @_ array in a subroutine will alter the caller's copy of the parameters. Then again, the other introductory book I mentioned doesn't cover these facts, either. I had to dig through perldoc to figure all this stuff out. Finally, a chapter on accessing databases from Perl would have been nice.
This book is not for everyone. If you want to learn Perl in all its gory details, and, more importantly, if you want to adopt the style and mindset of the Perl programmer, then you probably will want to look to another beginner book. Ditto if you're the kind of programmer who's more interested in playing syntactical games than in designing an effective architecture. However, if you are a programmer of C/C++, Java, or a similar language, who just wants to get things done effectively, clearly, and quickly, then this is the best route to go down.
Well written, concise, pragmatic, and lots of exemplary code, December 14, 2000
Reviewer: C. Garrett Goebel (see more about me) from Mission, KS USA
If you need to automate administrative tasks, ignore the O'Reilly Perl-Admin books, this one has a lot more substance and a very little fluff.
Dave Roth is a prolific author of many very popular Perl modules for 32 bit Windows operating systems: Win32::Daemon, Win32::Perms, Win32::ODBC, Win32::AdminMisc, and many others. He is also an active participant in the Perl WinNT Admin mailing list
This guy has a lot of real world experience
with Perl and Win32. He's solved a lot of difficult problems. More than
that, he does a great job of regularly taking the time to document and
convey that knowledge on to others. The book is a great distillation
of that knowledge.
A must have, November 25, 2000
Majority of Perl books deals with UNIX. However in a real world, whether you like it or not, most IS departments have to deal with Windows NT/2000 servers. These departments also require knowledgeable administrators to take care of this environment. Here is where this book comes in handy. The author, also known from his previous book (WIN32 PERL Programming. The standard extensions) shows us how we can use Perl to do day to day tasks on Windows Servers. The book offers many ready to use scripts and also explains the rationale for using techniques, the way it was used in this book. I rated this book 5 stars because not only it enriched my knowledge but also it saved me many hours of trying to write similar scripts on my own. In essence: A must have!
Hope for Perl UNIX Programmers on Windows, October 24, 2003
Recently I was given the task of writing some Perl scripts to manipulate processes on a Windows server. I've been writing Perl scripts on Solaris and Linux for some time, but had no idea where to start on Windows.
One of the scripts needed to find a process by name. If the process wasn't running the script needed to start a new instance and send out an e-mail to notify the support team. Using Roth's book I was up and running in a matter of hours. Prior to that I had spent days combing the Internet looking for tips on digging into the bowels of Windows (not a pleasant image) with Perl.
Roth gives you multiple ways to tackle a problem, but voices his opinion on why you might want to choose one method over another. However, at times he makes assumptions about your knowledge of Windows which can lead to frustration. His section on WMI (Windows Management Instrumentation) is very brief for such a complex subject for example.
I wouldn't recommend this book for someone new to Perl, but if you are familiar with Perl and need to write scripts for Windows you will find Roth's book useful indeed.
Sample Chapter
Best of The Perl Journal
- Edited by Jon Orwant
- 0-596-00310-2,
- 600 pages,
- $39.95 US (est.)
The first of three volumes from the archives of The Perl Journal that O'Reilly has exclusive rights to distribute, this book is a compilation of the best from TPJ: 71 articles providing a comprehensive tour of how experts implement computer science concepts in the real world, with code walkthroughs, case studies, and explanations of difficult techniques that can't be found in any other book. [Full Description]
Perl & XML is aimed at Perl programmers who need to work with XML
documents and data. This book gives a complete, comprehensive tour of
the landscape of Perl and XML, making sense of the myriad of modules,
terminology, and techniques. The last two chapters of Perl and XML give
complete examples of XML applications, pulling together all the tools
at your disposal.
Good for data-processing *beginners*, July 6, 2001
Reviewer:
Goldin Evgeny (see more about me) from Israel
As I said, it may be good for data-processing beginners, but Perl experts will hardly find lot's of new information in it.
P.S. I trust him and therefore follow his advices in every script I start to think of ( especially the one about "UNIX filter model" ).
By David N. Blank-Edelman
Six O'Reilly books on one CD-ROM in HTML format. Only one book is really good (cookbook). Advanced Perl can be useful too. CD includes:
Perl in a Nutshell; Programming Perl, 2nd Edition; Perl Cookbook (very good); Advanced Perl Programming(good); Learning Perl(outdated and weak); and Learning Perl on Win32 Systems (this is just a bad joke). As a bonus, the almost useless printed version of Perl in a Nutshell is also included.
| ****+ Beginning Perl | Perl Cd Bookshelf | Teach Yourself Perl 5 in 21 Days | Perl 5 Interactive Course : Certified Edition | Perl by Example |
I would like to name this type of publishing "parallel publishing" and
it has several very important advantages over pure electronic e-text or
pure paper publishing. First it's much more than "try before you buy" although
the best introductory book depends on your background and it's worth to
shop about for the best match. Still the availability of a regular
"paper" book is much for convenient for studying as you cannot compare the
resolution and quality of text on the paper with that on the screen. Actually
the cost of printing it a sizable book on the laser printer exceeds the
cost of buying a printed version (if we assume 3 cents per page price).
But availability of electronic version is very important: it is more convenient
for reference.
Note: Extensive (and more up-to-date) list on open Perl books can
be found at
The perl.org
Online Library - perl.org . Unfortunately it lists both junk and really
good books.
****+ Beginning Perl - One of the best introductory books on Perl ever published.
*** Web Client Programming with Perl - O'Reilly book
*** Practical mod_perl - Apache module tutorial.
??? Learning Perl the Hard Way - too much OO.Perl for the Web is a book I wrote that was published by New Riders in August 2001. It provides tools and strategies to improve the performance of existing Web applications in Perl. It also provides principles and ideas that help Web programmers create an extensible framework for future growth.
***+ Perl CD Bookshelf, Version 4.0
Six HTML based electronic books on one CD: the second editions of Perl in a Nutshell, and Mastering Regular Expressions; the third editions of Learning Perl and Programming Perl; and two new titles: Learning Perl Objects, References, and Modules, and the long-awaited second edition of Perl Cookbook.
A paperback version of Perl in a Nutshell is included too
*** The Perl Cd Bookshelf, Version 3.0- 7 Bestselling Books on Cd-Rom
The electronic versions of 7 pretty average Perl books (only Cookbook is decent): the second edition of Perl in a Nutshell (paperback version included), the third editions of Learning Perl and Programming Perl, the Perl Cookbook, and 3 new titles: Perl & XML, Perl & LWP, and Mastering Perl/Tk.
Overpriced and with bad selections, buy previous version or version 4.0 instead.
This project is not part of the GNU Project.Perl Design Patterns documents Perl style and design/analysis.
Design Patterns are a hands-on, pragmatic object oriented approach,
in contrast to the vague, theory ridden texts IT is plagued with.
We cover dynamic programming, lambda abstraction, and other techniques
with the same approach.
Moderate through advanced experience level. Similar to "Design Pattern" books
for Java, C++, influenced heavily by "A Pattern Language", Christopher
Alexander.
At the time of this writing, approximately 100 pages worth of content exist, entirely covering the traditional, expected patterns. A snapshot can be fetched from http://wiki.slowass.net/assemble.cgi?PerlDesignPatterns.
Browsing the Wiki directly at http://wiki.slowass.net/?PerlDesignPatterns directly has the advantage of allowing you submit questions, corrections,
ideas, and amendments directly, as well as browse non-linearly. CVS access is
available as well, in some cases.
Embedding Perl in HTML with Mason
*** The Perl CD BookshelfMason is a tool for embedding the Perl programming language into text, in order to create text dynamically, most often in HTML. But Mason does not simply stop at HTML. It can just as easily create XML, WML, POD, configuration files, or the complete works of Shakespeare.
***Teach Yourself Perl 5 in 21 DaysThis is an old hat now, but you bac buy it really cheap. Six O'Reilly books on one CD-ROM in HTML format. Only one book is really good (cookbook). Advanced Perl can be useful too. CD includes:
Perl in a Nutshell; Programming Perl, 2nd Edition; Perl Cookbook(very good); Advanced Perl Programming(good); Learning Perl(outdated and weak); and Learning Perl on Win32 Systems(this is just a bad joke). As a bonus, the almost useless printed version of Perl in a Nutshell is also included.
*** Perl 5 By Example (ecopy from David Medinets Web site is available and contains corrections.)by David Till
Paperback, 870 pages,/ Published by Sams 16-May-1996 (second edition)
ISBN: 0672308940 ;
This tutorial assumes no prior programming knowledge or experience. It starts with basic concepts, and then builds upon them. Each chapter contains a Q&A section, summary, quiz, and a series of exercises which allow the reader to practice using the language features which were just learned.
Teach Yourself Perl 5 in 21 Days, Second Edition is the ideal book for beginning - and intermediate - level users who want to gain a solid understanding of this programming language. Using step-by-step tutorials and the easy-to-follow approach, you can Teach yourself Perl 5 in 21 Days! Through various teaching elements, you'll learn everything you need to know about this popular programming language. You'll discover how to manipulate text, generate reports, and perform system tasks. Through practical, hands-on instructions, logically organized lessons, and helpful Q & A sections, you'll master Perl functions and concepts and be developing robust programs in no time. Plus, Do/Don't boxes show you how to avoid potential programming pitfalls, illustrations explain constructs such as associative arrays, and tables serve as handy references.
This well-structured book is actually both a good introductory text and a reference. For more obscure example one can use some examples form the David Medinets' book. It assumes that you are familiar with the basics of using the UNIX operating system. It is good for Linux users but will be extremely useful for Windows users too. Contains exercises after each chapter, "Do and Don't" boxes and unlike other books it does contain a chapter on Perl debugger !
Avg. Customer Review: ***+ Number of Reviews: 38
From Amazon readers reviews:
A reader from San Diego, CA , January 28, 1999 *****
The Best PERL Book Available!
This is both an excellent way to learn Perl and a great reference book. The book is easy to read, really teaches the essentials of the language, and has a great index for reference (although not as good as the previous Perl 4 version of the book)...
David Medinets./ Que's October 1996/658 pages/CD-ROM/ISBN: 0789708663 Paperback - 658 pages Bk&Cd-Rom edition (October 1996)
Que Corp; ISBN: 0789708663 ; Dimensions (in inches): 1.74 x 9.04 x 7.37
Currently it's probably the secondary choice among the open introductory books on Perl. I do not recommend it as an introductory book. Simon cozens and David Till's books are a better introductory books and I realized it hard way -- by teaching a class using Perl5 by Example. My experience suggests that it should not be used in the university environment but probably can be OK for self-study, especially if one have some experience with other languages. As an introductory book it's pretty weak -- the author uses too much obscure Perl idioms and many examples are weak and poorly thought out. In case you decided to use it, the book probably should be used only as a reference with Teach Yourself Perl 5 in 21 Days as a primary text.The main advantage of the book is that the full text is available both on the CD-ROM and online from the Web(for example here Perl 5 by Example -- try to search Yahoo! for the mirror nearest to you; ).
See also the author interview
David Medinets "... has been programming since 1980, when he starting with a Radio Shack Model 1.". He has written also Visual Basic Script Quick Reference, and HTML Quick Reference, 2nd Edition for Que and also co-authored books on such topics as Lotus Notes, C++, Visual Basic, and Microsoft Office. In past he used REXX that probably is an advantage for any Perl programmer/writer as REXX (although a weaker scripting language) has some features that are difficult to program in Perl. This seems to be his first scripting language book. He is also a co-author of Using Lotus Notes 4 (1996). The book is conveniently structured into four parts:There are also 5 appendixes:
- Part I: Basic Perl
- Part II: Intermediate Perl
- Part III: Advanced Perl
- Part IV: Perl and the Internet
Strangely enough most of readers reviews in the Amazon.com website are quite positive. Here is one example:davepamn@ieighty.net from Utah , January 30, 1999 ******
- A - Review Questions
B - Glossary
C - Function List
D - The Windows Registry
E - What's On the CD?The Best Perl Book I've studied
Perl 5 by example is the best Perl book I've studied. I use the Perl 5 book along with the 'CGI For Windows' book to teach an internet/multimedia class, at an University level. 'Perl 5 by example' has an excellent teaching format: Definition, explanation, and hundreds of sample code fragments, to illustrate the point. 'Perl 5 by example' combines beginning concepts, intermediate, and advance Perl programming practices. One of the most valuable sections in 'Perl 5 by example' is the creating reports section. The second most valuable section is the regular expression explanation. I keep the 'Perl 5 by example' book close as a valuable language reference. Database is also a key interest for me. Combining Perl with Sybase and using the reporting capability helps students start learning how to create enterprise wide solutions. Write to me for details on some of the Perl projects that were created using the book. Upon studying this book and reader should have the knowledge to write numerous cgi scripts, create Perl modules, and understand at an intermediate level the Perl language.
The complete Perl reference - useful for finding the syntax for the most common and obscure Perl commands.
Categories: Web Development, Programming, Perl
Covers Perl OOP structure, socket programming, HTML conversions, building Internet search utilities, and more!
|
Beginning
Perl |
Perl Developer's Guide |
Perl Black Book |
Perl 5 Interactive Course
: Certified Edition |
Elements of Programming With Perl |
Finding a decent introductory Perl books is not that difficult as there are several excellent books on the subject. Selecting between them is a little bit more tricky ;-). At the same time probably does not make much sense to buy two introductory books. I recommend Effective Perl Programming as your second book. In no way Learning Perl should be your first Perl book. Perl 5 Interactive Course : Certified Edition has e-text and support site but does not cover Perl 5.6.
****+ [Open] Beginning Perl by Simon CozensPaperback - 700 pages 1st edition (May 25, 2000)
Wrox Press Inc; ISBN: 1861003145
Avg. Customer Review:[Note this is an open book. PDF in available from http://learn.perl.org/library/beginning_perl
TOC Introduction Chapter 1: First Steps In Perl Chapter 2: Working with Simple Values Chapter 3: Lists and Hashes Chapter 4: Loops and Decisions Chapter 5: Regular Expressions Chapter 6: Files and Data Chapter 7: References Chapter 8: Subroutines Chapter 9: Running and Debugging Perl Chapter 10: Modules Chapter 11: Object-Oriented Perl Chapter 12: Introduction to CGI Chapter 13: Perl and Databases Chapter 14: The World of Perl Appendix A: Regular Expressions Appendix B: Special Variables Appendix C: Function Reference Appendix D: The Perl Standard Modules Appendix E: Command Line Reference Appendix F: The ASCII Character Set Appendix G: Licenses Appendix H: Solutions to Exercises Appendix J: Support, Errata and P2P.Wrox.Com Index
Great for Teaching Perl, February 14, 2007 F. L. Fabrizio
- Paperback: 464 pages
- Publisher: Apress; 2 edition (August 30, 2004)
- Language: English
- ISBN-10: 159059391X
- ISBN-13: 978-1590593912
I use this book to teach Perl in a university course. I feel it does a very good job at exposing just enough of Perl to make it useful without confusing beginning students. I chose this over O'Reilly's Learning Perl (also a good book) because this book goes into References, Modules and a bit of OO Perl, and also has what I feel is slightly better treatment of shortcuts like $_ as well as lexically-scoped variables with 'my'. O'Reilly has broken these topics across two books (Learning Perl and Intermediate Perl), both fine books but I only want the students to have to buy one book. I feel that Perl is not very useful without references, so that was the major reason for switching to this book for a beginning Perl course. I highly recommend it.
Beginning Perl, 2nd Edition, October 6, By T. Barr (Mt. Prospect, IL United States)
Beginning Perl, 2nd edition, by James Lee, et al., is a splendid
introduction to the Perl programming language, version 5.8.3. The flow
of the book is logical, straightforward, and highly readable. Text is
heavily sprinkled with program examples that the reader can easily try
out along the way, as well as exercises at the end of most chapters,
with solutions in the appendix. Chapters are short, clear, and
engaging.
After a brief discussion of the history of Perl and a listing of
numerous helpful online resources, the book quickly moves on to the
logistics of running a Perl program, followed by descriptions of basic
program elements and control flow. Then it's ahead to more
sophisticated data elements - lists, arrays, and hashes - and finally
functions and subroutines.
After a solid and seemingly effortless explanation of these "basics,"
the book moves to one of the most powerful features in Perl - regular
expressions - and how these can be used to access files and data. From
there, the discussion expands to string processing and references. The
book concludes with discussions of more "advanced" Perl features,
including object-orientation, modules, and use with webservers and
databases.
Regardless of topic, the writing style stays crisp, clear, and
example-filled, making this book a highly effective and enjoyable way to
get a jump-start into Perl programming for the novice or a quick
refresher for the expert wanting a Perl 5 update.
- I have only the first edition that was called Perl 5 Complete. I even wrote the first review about the first edition of the book on Amazon.com. I also used it in one introductory e-commerce class. As usuall, you love a textbook much less after you use it a class -- errors and omissions became more evident :-(.
I like the illustrations. The book contains very useful quizzes and exercises after each lesson -- the best of any introductory book I read. Web site www.waite.com/ezone (or http://www.mcp.com/distance_learning/frame_ezone.html )contains e-text, additional materials, quizes that can be graded automatically and the reader can ask questions about the book. Good typographic quality, far superior in comparison with O'Reilly books. e-text and on-line quizzes are available from the support site. This is just great !
Negative points -- the author too much emphasize regular expressions at the expense of more procedural operations on string (substr, index, pack, etc.) and that might be a problem for beginners. Some tests are pretty obscure and actually teach wrong practice (see tests for control structures and subroutines as an example). The book does not provide enough warning about problems with Perl and how to avoid them.
The examples in the book are effective and can be used immediately to help you solve those simple real world problems. The book does fall short in helping you easily conquer more complex issues quickly. However, the online resources are great for helping you address these problems.
Textbook Binding
- 438 pages Bk&Cd Rom edition (January 1999)
Addison-Wesley Pub Co;
ISBN: 0201360683 ;
Amazon.com Sales Rank:
130,251
Avg. Customer Review:
![]()
Number of Reviews:
6
Another rather short book on Perl ;-). You should be comfortable with general programming concepts to get the best use out of it. Here are some relevant Amazon reviews:
***** Excellent book, well-written with lots of valuable info. October 4, 1999
Reviewer: Michael Tacelosky (see more about me) from Washington, DC
Although my bookshelves are already full of 700-page Perl books of the "Teach Yourself" variety, I was unable to find any good explanations of the LWP module. When I found a chapter devoted to LWP in Perl Power, I was thrilled and immediately bought the book.
What I didn't expect was the bonus of someone finally providing a good explanation of Perl 5 and object-oriented Perl. That section ALSO would have been worth the price of the book.
Even the first chapter had all sorts of insights and explanations I found invaluable. I've been using Perl off and on for about 3 years, mostly writing quick utilities, and I'll credit this book with wanting to make me use Perl more.
*****Perl power December 30, 1999 Reviewer: Dennis Krystowiak from Detroit, Michigan
Excellent book that gets you started with lots of
areas of Perl. Most of the code I have tried works fine with Activestates's
523 build and with the Perl development kit 1.2.4. Having code that
work is rare with these books especially with Windows. I use 98 and
NT and unix. This book is not a definitive guide to Perl but it gives
you a good summary in most of the important area's and enough code to
get started quickly. It gave me lots of ideas on things I could use
Perl for. I also like "Perl 5 complete" for theory, but the code for
that book is very buggy and hard to get to work. I like its detailed
explanation of how things are suppose to work. "Perl Cookbook" is also
excellent for how to solve problems various kinds of problems. These
are the best of the Perl books I have.
The first hundred pages or so provide a lightening-strike introduction to the basics of Perl. Best-suited for a reader with prior programming experience, the first chapter illustrates the most important Perl concepts efficiently, but also includes enough subtleties and effective examples that it's worth a look by a non-beginner.
After equally vigorous introductions to Perl objects and modules, Schilli focuses on two exciting areas where Perl's unique strengths are well-suited, Tk-based graphical user interface development and internet programming. Although Perl has many important uses beyond these two, they make an effective introduction to the breadth and power of the language.
Even the appendices contain a surprising variety of useful information, from the instructions for installing Perl from the included CD, to the quick references to HTML and POD, to the links to a variety of resources available through the 'Net.
Clearly, a "jump start guide" can't cover every detail of a language as eclectic as Perl; nevertheless, Schilli has done a very good job of selecting topics that will get the reader up and running quickly, while leaving them prepared to learn even more. I also consider this book nearly ideal for the reader who is already familiar with Perl as a rapid-development text-processing and scripting language, and who is now ready to move into full-blown application development in Perl.
My other complaint is that the book is too small for such a huge
language. Just 350 pages in comparison with 1K pages in Perl 5 Complete
and 860 pages in
Perl 5 Interactive Course.
Well, no -- it's just right actually if you want the book that competes
with Learning Perl, but the book try to cover so many topics that readers
might feel lost and feel that the author should have used a bit more
in-depth treatment, or more extended examples. The author might
have felt the same way, since at the end of most chapters, there are
pointers to further information, which are usually pretty useful.
**** Too much spread out too thin
Reviewer: Andy Lester from McHenry, IL April 5, 2000
This book doesn't feel like a Perl book. It feels like Johnson is a C programmer at heart, trying to write a book about Perl.Worse, it's such a wide survey of Perl as to be incongruous. He's got pages devoted to the thought process behind how to structure a program, which is fine for an introductory text; but then he gets into anonymous hashes and different sorting algorithms. Is this an introductory book or not?
The chart on page 184 of all the regex elements is completely useless. It shows all the elements, but doesn't explain at all what they do.
It sure LOOKS great. I love the visual internal style of all the Manning books.
I haven't seen anything that's incorrect, and he writes clearly enough. It's just poorly organized and feels like it was thrown together.
Eric F. Johnson is a prolific writer and authored several books including:
and a book Perl Modules (1998).
The second edition is simply disappointing. It's kind of Randall L. Schwartz fiasko. The "Just Another Perl Hacker" as any hacker should be lazy, but probably not to such an extent: the only one new chapter (brief overview of CGI) and one new appendix (listing of standard Perl modules) were added (probably by Tom Christiansen, as the team now includes him). The examples and exercises are identical to the the first edition. You may try Perl Complete instead, if this is your first book. Skip this book if you already have at least one introductory book on Perl.
If you like Randal Schwartz convoluted "hacker" style with excessive emphasis on Perl idioms, Effective Perl Programming might be a better deal...
Poorly organized and difficult to use April 8, 1999***
As an experienced systems administrator and script writer I was extremely offput by this book. Of course it's an ORA book and thus the quality is there, but I swear I have no idea how the authors got this poorly organized, confusing amalgamation past the editors unless they were simply too baffled to reject it and gave up. For starters, the footnotes often contradict the text which references them. The writing is thick and assumes too much. The authors' sense of humor apparently dictates the presense of smart-alecky and totally irrelevant commentary at random spots, just to make sure that the reader is absolutely lost. And the index! The index references such important aspects of Perl as "Astro [from "the Jetsons"], pronouncing 'Windex'" and "Max Headroom," yet if you look up the keyword "hash" -- which has an entire chapter devoted to it -- there is no listing at all in the entire index. You can look up associative arrays (a deprecated term) though. I found this book to be hostile to the learning process. In fact, I picked it up no fewer than three times trying to learn basic perl from it, only to toss it down in frustration after pulling my hair out. Compare the ORA Korn shell book, which is beautifully instructive, concise and clear, and with a wonderful index with nearly every important function listed. This was the first ORA book I wished I hadn't bothered to purchase. One could argue that perl5 is simply too complex to be gently introduced, yet I learned more about perl from reading Webmonkey's quickie six page tutorial than I did from "Learning Perl." I was quite disappointed with this book. Buy a copy if you must, but plan to use it as a (poor) reference because its teaching abilities are limited.
| *** | Generic perl topic are OK, Win32 and NT specifics are poor |
March 30, 1999 |
| Reviewer: rwloerakker@arminus.xs4all.nl from Gouda, Netherlands | ||
| I bought this book as starter to learn more about Perl in general (and for Win32 systems). I found the very first chapters to be of good service, though I spotted these elementary Perl programming techniques in other O'Reilly books too. The Win32 part is in my opinion very poor, it doesn't explain things very well like OLE, reading/writing the Event log and other rudimentary system administration tasks. If you have a lot of free time on your hands like I sometimes tend to have, take some time to search for example scripts for Win32, and together with this book you will be able to understand. Though I think a new edition would be a good idea, covering specifically Win32 platform (people should buy other books to learn Perl in general, I do not like to see the same 3 chapters in every book over again). | ||
But ... somewhere in the extensive revisions, additions, extensions, and deletions that transformed the first Camel book into this, the second Camel book, the magic went away. And some very suspicious stuff went in. The book lost its digressive, essayic feel and became more of a perfunctory reference work. Additionally, some of the completely new material turned out to be just a little ... strange. The discussion of object-oriented programming based around the term "thingy" just doesn't do it for me. (Ignore all that and read Damian Conway's book instead.)
Preferences of style and tone aside, an unavoidable flaw of an infrequently-updated book like this one is that it inevitably refers to an obsolescent version of Perl. If you want current Perl documentation, you need to read the man(ual) pages that came with that version of Perl. What's in this book is generally but not completely accurate for newer versions of Perl. And because it's intended to be a more or less complete reference covering even small details, it can't help but be dead wrong on some points as the language continues to evolve. Bear in mind, also, that much of the material in this book comes STRAIGHT from the man pages. (Just not the up-to-date versions.)
A third edition is in the works, which will no doubt be at least a temporary improvement. If the newer version restores the insight and charm of the original, it will certainly deserve a place on your programming bookshelf. But as a reference work intended to cover a constantly-evolving language, Programming Perl will always suffer by being out of date.
If you are the type who dislikes reading electronic
documentation, by all means, buy a copy of this book. But you'll find
that you have to use the online documentation anyway.
1. The book is not intended to the ones who have no programming experience at all. The read should be at least an intermediate programmer, because the basic programming concepts of the language (Variables, Subs and etc..) are badly explained.
2. Because of Perl's C Like Syntax, it is recommended that the reader will know C, Awk, or Grep and Some experience in the Unix Environment.
3. The Book itself is badly organized, certain complicated things are shown in examples and explanations, and those things are taught many pages afterwards. For Example: An Example of a perl program is shown on page 10, and that example contains subs and pattern matching, which are taught 100 Pages later!
These are the 3 Main Disadvantages. For Conclusion, if
you're new to programming, or want to learn Perl easliy, buy "Learning Perl",
but if you're a somewhat experienced programmer, and want to master Perl,
this book is the best one you'll find for that purpose.
The complete Perl reference - useful for finding the syntax for the most common and obscure Perl commands.
Online version __ Rex Swain's HTMLified Perl 5 Reference Guide
An HTMLified version of the Perl 5 Desktop Reference.
ISBN 1-56592-187-9, by Johan Vromans.
This is both an excellent first book on Perl. The book is easy to read, really teaches the essentials of the language, and has a great index for reference (although not as good as the previous Perl 4 version of the book).
Steven Holzner is a professional who have wrote a several dozens of books. So he definitely know the ropes of a language textbook writing. Here are some reviews from Amazon.com
A reader from Texas, USA , August 18, 1999 *****
Will Wonders Never Cease?
The first Perl book I've seen that is truely great for beginners, great for people who are already Perl programmers, has a lot of example code, is a great reference, has a good reference section, and also seems to not leave any important details/sections out. The fact that it is very well organized/divided is definately a plus! Any person who wishes to learn Perl or have a great reference, MUST have this on their bookshelf.A reader from usa , April 15, 1999 ****
Good Book for Perl. Lots of Example Code
I think this is a great reference book for perl. It covers all the major topics with examples on each of the minor details. Chapters are divided by topics such as hashs,arrays,cgi. Excellent reference. Biggest draw back is sometimes the examples are too short so that it becomes difficult to figure out how it would operate in a large program.
Here is one amazon.com review:
A reader from Seattle, WA , June 30, 1999 *****
code with style . . .
One beauty of perl is that there are so many ways to do any given task. This can also make life hell when you have to maintain other people's code, or even your own code several months later. While this book doesn't tell you 'one right way' to do things, it does show you how to do things with style. Not only will you feel cool for writing pretty code, you'll be much happier with it in the long run.
[0-9]+(\.[0-9])+ -- regular expression for matching IP addresses<H[1-6]> * \\H[1-6] -- HTML headers
^(From|Subject|Date): -- line in the e-mail message header (it is important to understand that the alteration is not greedy
Actually I do not know what to recommend to the reader who wants to master Perl in Win32 environment other than Scott McMahan book. I have more or less positive experience with Perl Complete that is a really good introductory book, but it's not Win32 specific.
Imagine the following on your annual review form:
"Automated my daily build to occur off-hours, thereby saving a hour per day for more productive activities. Provided free software and training to my colleages to automate each team member's daily build, providing a net increase of useful development team time of 12-1/2 percent."
Don't you think ought to be worth an easy 10-15% raise? (If not, then you really need to find a new employer.)
If that is not enough, try this:
"Implemented Automation interfaces in developed code to facilitate automated testing of code off-hours. Automated test procedures provided email report of nightly test results to all concerned parties."
I can not recall any book packed with more useful, relevant, and exciting information. As the title states, it shows how to use Perl to automate mundane tasks such as daily builds and nightly back-ups. In addition, it shows how to use COM/OLE Automation to advantage in your Perl scripts. Need a quick UI element and you don't want to use Perl/Tk? This book shows how to use Visual C++ to create an Automation DLL for the purpose of executing dialogs from your script, with, of course, native look-and-feel. Need to do some heavy lifting in C++? Need to drive the Automation interface of MS applications? This books shows how to use COM Automation to do the heavy lifting, drive DevStudio, and drive some of the Office applications.
The content of this book drips with pragmatism. It seems to emphasize using the right tool for the job, and avoids unnecessary heroics. There are some very thoughtful sections concerning anti-Microsoft sentiment, as well as what is good and bad about both Windows and Unix. This book manages to avoid both bashing or cheerleading, it just informs. It shows you how to use the strengths of the combination of the Windows platform and Perl, and highlights some weaknesses in the Windows platform that a developer needs to be aware of. (In particular, read the section on distributing a VC++ 6.0 Automation Server on page 125. This section illuminates a problem that would be truly dreadful to debug.)
The Perl used in this book is at a level that anybody who read the O'Reilly Gecko or Llama books should understand. The author seems to forego the geeky Perl power one-liners common in other Perl books in the interest of clarity.
Quit wasting any more time reading this review.
Buy the book and get back to work!
I got the impression that the author concentrated on the extensions he developed very well but only gave the other (more useful?) extensions a decent explanation if he was interested in them.
The book starts off well detailing error handling and system administration for Perl on the Win32 platform. It started to dissapoint here as, in places, much more detail is included on the authors own web pages. There is a lot of detail on the more esetoric details of Win32 Perl such as Com & OLE, consoles and sound. This stuff is interesting but not as important as the more common and useful extensions dealing in, say, system administration.
The author (not surprisingly!) treats the extensions he has written himself in most detail - ODBC in particular. This is fine but glaring omissions are even here. For example the chapter on communication mentions the win32::pipe and win32::message extensions but nowhere does it explain that these are additional extensions that need to be downloaded and installed first (in most cases at least). I know from first hand experience that this would fox a newcomer to Win32 Perl builds.
See also Perl for Win32 books.
Copyright © 1996-2009 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
Disclaimer:
Last modified: August 15, 2009