As the title suggests, this book is a complete reference to the Perl programming language. As such, it includes details of everything you want to know about statements, expressions, functions, and regular expressions within Perl. Some highlights of the book include the creation of useful packages and modules, using Perl on the command line and Tk as a cross-platform user interface solution. There are also several chapters dedicated to the design and use of the supported data structures within Perl, and to the processes available for accessing external data structures and databases.Interprocess communication, either between processes on the same machine or between processes on different machines, is also a topic for discussion. The former is handled by a number of tricks and some system-dependent features. For the latter machine communication, you can use network sockets. An alternative solution to the problems of processing between multiple processes is to use threads, which are small, “lightweight” execution sequences that are still owned in their entirety by their parent process, and we also look at how threads can be used to solve these problems.A large portion of the book is given over to the process of getting inside Perl. We examine how Perl works as it parses a Perl script and how that process can be modified with compiler pragmas. Then we move on to the process of extending Perl by writing an interface between Perl and a C function. This allows Perl to use and access an unlimited number of extensions and enhancements to the core Perl language. You can also do the reverse. You can embed the Perl interpreter into a C program, allowing you to use the advanced features of Perl within a C program. You could even build the interpreter into an application to provide a built-in scripting language.A recent development in the Perl interpreter has allowed the creation of a Perl compiler (which is in itself a bit of a misnomer; see Chapter 1 for details). With the compiler you can do many things, including produce some detailed output on the real structure and execution path that your script takes. One of the most significant and useful features, though, is that you can take a Perl script and produce a stand-alone executable program.Perl is also a good cross-platform development tool. See Chapter 1 for a list of some of the platforms that Perl has been ported to. We take a close look at the three main platforms-Unix, Windows, and MacOS-and how they differ, before taking a more generalized view of how to program with Perl in a cross-platform world and ensure the cross-platform compatibility.Finally, the appendixes provide a quick and detailed reference to the Perl functions, error messages, and the standard Perl library that comes with every distribution. Of course, even with the best intentions, it’s possible to have forgotten some element, or not to have gone through a particular element to a deep enough degree, although I hope this won’t be the case for most readers.Who Is the Book For?I haven’t targeted the book at any specific group of Perl users. To put it simply, if you program in Perl, you will find this book useful. As a reference, most people should find it useful to keep on the desk or the shelf just as a quick means of looking up a particular function or feature. For learners and expert users alike, the information in this book will be invaluable.You should also find the book useful if you want to know how to do a particular task in Perl, since you’ll also find working, real-world examples of the different features of Perl within the book. If you are looking for more examples, you might want to look at Perl Annotated Archives, which contains over 100 scripts to solve a myriad of different problems.How to Use This BookPick it up, look up the feature you want to get more information on from the contents or the index, and read! The scripts and script fragments included in the book should all work without modification on your machine. Be aware though that not all platforms support all Perl features. Use Chapters 21 through 24 if you are unsure of a feature.If you want purely reference information-that is, you want to look up the arguments and return values to a function-then use the appendixes at the back. For discussion, examples, and detailed information on a particular feature, use one of the earlier chapters. You should find references between the chapters and appendixes in both directions to help you get more information.The bulk of the book covers the core version of Perl as it is supported and developed under Unix. See Chapter 21 for details on using Perl on the Unix platform. If you are programming under Windows or MacOS, then please read Chapter 22 or 23, respectively, for details on how to obtain, compile, and program Perl on those two platforms.