19 of 21 people found the following review helpful
- Published on Amazon.com
I first tried to learn Perl by using the other O'Reilly book, "Programming Perl". I was completely lost. Then I found this book and my second attempt was much more successful. This book is great for self-teaching, and the book chapters should be read in order as each chapter builds on previous ones. Each chapter has plenty of good programming exercises with answers in the back of the book. I review this book in the context of the table of contents.
Chapter 1. Introduction
This chapter answers basic questions such as how to get and install Perl, how to construct a basic Perl program, and then takes you on a whirlwind tour of Perl.
Chapter 2. Scalar Data
As a general rule, when Perl has just one of something, that's a scalar, which is the topic of this chapter.
Chapter 3. Lists and Arrays
If a scalar is the "singular" in Perl, as described at the beginning of Chapter 2, the "plural" in Perl is represented by lists and arrays. A list is an ordered collection of scalars. An array is a variable that contains a list. In Perl, the two terms are often used as if they're interchangeable. But, to be accurate, the list is the data, and the array is the variable. You learn about these differences through practical code examples in this chapter.
Chapter 4. Subroutines
You've now seen and used some of the built-in system functions, such as chomp, reverse, and print. But, as other languages do, Perl has the ability to make subroutines. The name of a subroutine is another Perl identifier occasionally with an optional ampersand in front. There's a rule about when you can omit the ampersand and when you cannot, and that rule is discussed.
Chapter 5. Input and Output
This chapter covers the 80% of the I/O you'll need for most programs. If you're familiar with the workings of standard input, output, and error streams, you're ahead of the game. If not, you get you caught up by the end of this chapter.
Chapter 6. Hashes
In this chapter, you will see a feature that makes Perl one of the world's great programming languages--hashes. Though hashes are a powerful and useful feature, you may have used other powerful languages for years without ever hearing of hashes. But you'll use hashes in nearly every Perl program you'll write from now on; they're that important.
A hash is a data structure like an array, in that it can hold any number of values and retrieve these values at will. However, instead of indexing the values by number, as in arrays, you look up the values by name. That is, the indices aren't numbers but are arbitrary unique strings.
Chapter 7. In the World of Regular Expressions
Perl has many features that set it apart from other languages. Of all those features, one of the most important is its strong support for regular expressions. These allow fast, flexible, and reliable string handling. But that power comes at a price. Regular expressions are tiny programs in their own special language, built inside Perl. This means that you're about to learn another programming language, although, fortunately, it's a simple one. In this chapter, you'll visit the world of regular expressions, where, for the most part, you can forget about the world of Perl.
Chapter 8. Matching with Regular Expressions
In the previous chapter, you visited the world of regular expressions. Now you'll see how that world fits into the world of Perl.
Chapter 9. Processing Text with Regular Expressions
You can use regular expressions to change text, too. So far, the book has only shown you how to match a pattern. Now, you'll learn how to use patterns to locate the parts of strings that you want to change.
Chapter 10. More Control Structures
In this chapter, you'll see some alternative ways to write Perl code. For the most part, these techniques don't make the language more powerful, but they make it easier or more convenient to get the job done. You don't have to use these techniques in your own code, but don't skip this chapter. You're certain to see these control structures in other people's code, sooner or later.
Chapter 11. File Tests
Earlier, this book showed how to open a filehandle for output. Normally, that will create a new file, wiping out any existing file with the same name. Perhaps you want to check that there isn't a file by that name. Perhaps you need to know how old a given file is, or perhaps you want to go through a list of files to find which ones are larger than a certain number of bytes and not accessed for a certain amount of time. Perl has a complete set of tests you can use to find information about files, and that is the topic of this chapter.
Chapter 12. Directory Operations
The files created in the previous chapter were generally in the same place as your program. But modern operating systems let you organize files into directories, allowing you to keep your MP3 files away from your important work files so you don't accidentally send an MP3 file to your boss. In this chapter you'll see how Perl lets you manipulate these directories directly, in ways that are even fairly portable from one operating system to another.
Chapter 13. Strings and Sorting
Perl is designed to be good at solving programming problems that are about 90% working with text and 10% everything else. So it's no surprise that Perl has strong text-processing abilities, including all that can be done with regular expressions. But sometimes the regular expression engine is too fancy, and you need a simpler way of working with a string, as you'll see in this chapter.
Chapter 14. Process Management
One of the best parts of being a programmer is launching someone else's code so you don't have to write it yourself. This chapter shows how to manage your child processes by launching other programs directly from Perl. The examples in this chapter are primarily Unix-based; if you have a non-Unix system, expect to see some differences.
Chapter 15. Perl Modules
There is a lot more to Perl than what is in this book, and there are a lot of people doing a lot of interesting things with Perl. If there is a problem to solve, then somebody has probably already solved it and made their solution available on the Comprehensive Perl Archive Network (CPAN), which is a worldwide collection of servers and mirrors containing thousands of modules of reusable Perl code. If you want to learn how to write modules, consult the "Alpaca book". In this chapter, you learn how to use modules that already exist.
Chapter 16. Some Advanced Perl Techniques
The techniques in this chapter are only "advanced" in the sense that they aren't necessary for beginners. The first time you read this book, you may want to either skip or skim this chapter so you can get right to using Perl. Then come back to it later when you're ready to get more out of Perl.
Appendix A - Exercise Answers
Appendix B - Beyond the Llama
9 of 9 people found the following review helpful
- Published on Amazon.com
I purchased this book hoping to gain insight into Perl after having experience with C, C++ and Java. I came back with not only a wonderful, base knowledge of the principals of Perl, but came out with some other skills as well.
This books provides a wonderful, quick, easy read for beginners and pros alike. The knowledge of the language coupled with the coverage of core concepts, methodology, practices and practical programmatic thinking was a delight to read/review.
7 of 7 people found the following review helpful
- Published on Amazon.com
I have owned this book for a couple of years now and I keep it on a bookshelf an arms reach away. It spends most of the time on my desk anyways. The book is excellent for beginners - I knew nothing of Perl when I bought it. I used it as a textbook and spent about a week reading through the chapters and doing the excercises. I've used it as a reference ever since. It really only covers basic Perl topic - there is a brief mention of databases at the end and two mentions of references in the whole book, but as a tutorial I certainly recommend it.
5 of 5 people found the following review helpful
- Published on Amazon.com
First of all, this book is only the beginning. It does teach the basics including arrays, scalars, functions and many other topics that are central to a basic understanding of Perl. It also covers regular expressions which aside from the great swatch of modules is one of Perl's greatest strengths.
Because of that and the teaching style this book earns the 5 star rating.
Toward the end it hints at some of the other 'required' topics such as references, modules and objects. After you've read this book get a copy of Intermediate Perl to read up on those topics.
4 of 4 people found the following review helpful
Thing with a hook
- Published on Amazon.com
I learnt Perl scripting from the third edition of The Llama, and recently had cause to brush up my Perl for a new job, so I thought I'd check out the fourth edition. I'm pleased to say it's still an excellent work. If you want to use Perl as a scripting language, this may be all you need for your entire scripting career. Some basic programming knowledge might be helpful, but even a complete beginner could get something out of this.
The basics are covered well: strings, numbers, control structures, subroutines, arrays and hashes, and most importantly, reading and writing files, and the mighty regular expressions. In fact, I've not read a better treatment of regular expressions anywhere else. Everything is clearly explained and well-written. Basically, this is the gold standard against which all introductory books to a programming language should be judged.
However, this book makes no claim to covering all of Perl. At least the main text of the book doesn't. I don't know what happened with the blurb on the back of the book, but it mentions, among other things: threading, references, objects, modules and package implementation. Technically, these topics are indeed present, but only in that a paragraph each is devoted to them in Appendix B. You will certainly learn nothing of any value about them.
There are some other minor quibbles: you may find the constant Flintstones references tiring after a while. Also potentially wearing are the sometimes inane footnotes, which breaks the flow of the reading experience for little reward. On the other hand, I found them a lot less annoying in this edition, so perhaps I've just mellowed out in the intervening years. Finally, the last chapter does a very whistlestop tour of map, grep, exception handling with eval, and array and hash slicing. I've never found the 'cram a bunch of stuff we don't have time to talk about into one chapter' approach to be very useful, and it doesn't work here, either. Fortunately, apart from the slices, it's all covered again at slightly greater length in Intermediate Perl.
Speaking of Intermediate Perl, if you want to learn Perl as a general purpose language, rather than for short scripts, you need to go and read that one next. Many suggest that you can graduate onto The Camel straight after The Llama, but I strongly disagree -- I tried and failed miserably.
But as long as you bear in mind you're only getting half the Perl experience, this is still the book I would thrust into the hands of anyone looking to learn Perl.