Welcome to the Llama book!
This is the fourth edition of a book that has been enjoyed by half a million readers since 1993. At least, we hope they’ve enjoyed it. It’s a sure thing that we’ve enjoyed writing it.
You probably have some questions about Perl, and maybe some about this book, especially if you’ve already flipped through the book to see what’s coming. So, we’ll use this chapter to answer them.
If you’re anything like us, you’re probably standing in a bookstore right now, wondering whether you should get this Llama book and learn Perl or maybe that book over there and learn some language named after a snake, or a beverage, or a letter of the alphabet. You’ve got about two minutes before the bookstore manager comes over to tell you that this isn’t a library, and you need to buy something or get out. Maybe you want to use these two minutes to see a quick Perl program, so you’ll know something about how powerful Perl is and what it can do. In that case, you should check out the whirlwind tour of Perl later in this chapter.
Thank you for noticing. There are a lot of footnotes in this book. Ignore them. They’re needed because Perl is full of exceptions to its rules. This is a good thing, as real life is full of exceptions to rules.
But it means we can’t honestly write, “The fizzbin operator frobnicates the hoozistatic variables” without a footnote giving the exceptions. We’re pretty honest, so we have to write the footnotes. But you can be honest without reading them. (It’s funny how that works out.)
Many of the exceptions have to do with portability. Perl began on Unix systems, and it still has deep roots in Unix. But wherever possible, we’ve tried to show when something may behave unexpectedly whether the cause is running on a non-Unix system, or some other reason. We hope that readers who know nothing about Unix will find this book a good introduction to Perl. (And they’ll learn a little about Unix along the way at no extra charge.)
And many of the other exceptions have to do with the old “80/20” rule. By that, we mean that 80% of the behavior of Perl can be described in 20% of the documentation, and the other 20% of the behavior takes up the other 80% of the documentation. To keep this book small, we’ll talk about the most common, easy-to-talk-about behavior in the main text and hint in the direction of the other stuff in the footnotes (which are in a smaller font, so we can say more in the same space). Once you’ve read the book all the way through without reading the footnotes, you’ll probably want to look back at some sections for reference. At that point, or if you become unbearably curious along the way, go ahead and read the notes. A lot of them are just computer jokes anyway.
The exercises are at the end of each chapter because, between the three of us, we’ve presented this same course material to several thousand students. We have carefully crafted these exercises to give you the chance to make mistakes as well.
It’s not that we want you to make mistakes, but you need to have the chance. That’s because you are going to make most of these mistakes during your Perl programming career, and it may as well be now. Any mistake that you make while reading this book you won’t make again when you’re writing a program on a deadline. And we’re always here to help you out if something goes wrong; Appendix A has our answer for each exercise and a little text to go with it that explains the mistakes you made and a few you didn’t. Check out the answers when you’re done with the exercises.
Don’t peek at the answer until you’ve given the problem a good try. You’ll learn better if you figure it out than if you read about it. Don’t knock your head repeatedly against the wall if you don’t figure out a solution. Move on to the next chapter and don’t worry too much about it.
Even if you never make any mistakes, you should look at the answers when you’re done. The accompanying text will point out some details of the program that might not be obvious at first.
Each exercise has a number in square brackets in front of the exercise text, looking something like this:
 What does the number 2 inside square brackets mean when it appears at the start of an exercise’s text?
That number is our (very rough) estimate of how many minutes you can expect to spend on that particular exercise. It’s rough, so don’t be too surprised if you’re done (with writing, testing, and debugging) in half that time or not done in twice that long. On the other hand, if you’re really stuck, we won’t tell anyone that you peeked at Appendix A to see what our answer looked like.
If you’re a Perl instructor who has decided to use this as your textbook (as many have over the years), you should know that we’ve tried to make each set of exercises short enough that most students could do the whole set in 45 minutes to an hour with a little time left over for a break. Some chapters’ exercises should be quicker, and some may take longer. That’s because, once we wrote all of those little numbers in square brackets, we discovered that we don’t know how to add. (Luckily, we know how to make computers do it for us.)
 To be sure, the first edition was written by Randal L. Schwartz, the second by Randal and Tom Christiansen, the third by Randal and Tom Phoenix, and now the fourth by Randal, Tom Phoenix, and brian d foy. So, whenever we say “we” in this edition, we mean that last group. Now, if you’re wondering how we can say that we’ve enjoyed writing it (in the past tense) when we’re still on the first page, that’s easy: we started at the end, and worked our way backward. It sounds like a strange way to do it, we know. But, honestly, once we finished writing the index, the rest was easy.
 Actually, if you’re like us, you’re standing in a library, not a bookstore. But we’re tightwads.
 Before you write to tell us that it’s a comedy troupe, not a snake, we should really explain that we’re dyslexically thinking of CORBA.
 Unless it is.
 Except on Tuesdays, during a power outage, when you hold your elbow at a funny angle during the equinox, or when
use integer is in effect inside a loop block being called by a prototyped subroutine prior to Perl Version 5.6.
 We even discussed doing the entire book as a footnote to save the page-count, but footnotes on footnotes started to get a bit crazy.
 Not all at once.