Programming is about solving problems and good communication. But before code is written, you need to know how to solve the problem. Breaking the problem into component parts assists in the process. And being able to model the problem so that it’s easy to implement and test also helps. Combine this with a solid understanding of the programming language itself – a good programming book contributes to all aspects of problem solving. Perl has the virtue it can solve a problems in a few lines of code. Perl programmers solve problems and get things done.
The popularity of a book is influenced by personal feelings, tastes, and opinions. Programming books accord to this general rule. There is a wide range of Perl books. As Perl is an open source programming language, with an eclectic heritage written by Larry Wall with thousands of contributors, it is welcome some authors have released their Perl books under a freely distributable license.
Perl is a high-level, general-purpose, interpreted, scripting, dynamic programming language released under the GPL or Artistic license. Perl’s syntax has its roots in shell scripting tools, borrowing features from other languages including C, shell script (sh), AWK, and sed. It is available for most operating systems. Perl is implemented as an interpreted (not compiled) language. It is procedural, with variables, expressions, assignment statements, control structures, blocks and subroutines.
Perl is a versatile language. It is often used to write (CGI) scripts, manipulate text, general web programming, networking, system administration, prototyping, database access, and graphical programming. One of the most powerful features of Perl is its extensive library of modules. Many of these modules are available from the Comprehensive Perl Archive Network (CPAN), which mirrors over 183,000 Perl modules.
1. Modern Perl by Chromatic
Modern Perl is designed to help programmers of all levels of proficiency. The book is not just a Perl tutorial. It explains how and why the language works, so that the full power of Perl can be unleashed. The book is updated for Perl 5.22, to demonstrate the latest and most effective time-saving features.
Modern Perl is one way to describe the way the world’s most effective Perl 5 programmers work. They use language idioms. They take advantage of the CPAN. They show good taste and craft to write powerful, maintainable, scalable, concise, and effective code.
This book providing a wealth of information on:
- The Perl philosophy.
- Perl and its community focusing on CPAN, community and development sites.
- The Perl language introducing names, variables, values, control flow, scalars, arrays, hashes, coercion, packages, references, and nested data structures.
- Operators – a series of one or more symbols used as part of the syntax.
- Functions – a discrete, encapsulated unit of behaviour.
- Regular Expressions and Matching – this chapter overviews the important regex features.
- Objects – discrete, unique entities with their own identities.
- Advanced OO Perl.
- Style and Efficacy explaining the importance of writing maintainable, idiomatic, and effective Perl.
- Managing Real Problems covering testing, handling warnings, files, modules, distributions, and more.
- Perl Beyond Syntax.
- What to Avoid.
The electronic versions of this book are released under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
2. Data Munging with Perl by Dave Cross
Data Munging with Perl shows the reader dozens of useful ways to get everyday data manipulation chores done better, faster, and more reliably.
Whether you deal with fixed-format data, or binary, or SQL databases, or CSV, or HTML/XML, or some bizarre proprietary format that was obviously made up on a drunken bet, there’s help right here. Perl is so good for the extreme stuff, that we sometimes forget how powerful it is for mundane data manipulation as well. As this book so ably demonstrates, in addition to the hundreds of esoteric tools it offers, our favourite Swiss Army Chainsaw also sports a set of simple blades that are ideal for slicing and dicing ordinary data.
3. Beginning Perl by Simon Cozens
Beginning Perl is a book which as its name suggests is written for beginners.
It starts with the absolute basics of Perl, guiding the reader carefully through to complex operations such as using Perl as a CGI language.
Beginning Perl covers the whole of the core Perl language.
The book covers the following topics:
- Installing Perl on Windows and UNIX.
- Working with simple values.
- Lists and Hashes – looks at some control structures, and learn how to process data more than once without reproducing code.
- Loops and Decisions.
- Regular Expressions – one of the most powerful features of Perl.
- Files and Data – shows you how to read and write to files, and techniques for handling files, directories, and data.
- Subroutines – define, order of declaration, parameters and arguments, return values.
- Running and Debugging Perl – covers error messages, diagnostic modules, Perl command line switches, and debugging techniques / Perl debugger.
- Modules – examines how Perl works with DataBase Manager modules and DataBase Interface module.
- Using Perl as an object-oriented language.
- Introduction to CGI – looks at how CGI works by writing some simple CGI scripts and using the CGI.pm module.
- Perl and Databases.
- The World of Perl – tempts the programmer on what they can do with Perl.
The book is licensed under the Creative Commons Attribution-NoDerivs-NonCommercial License.
4. Practical mod_perl by Eric Cholet, Stas Bekman
Practical mod_perl is regarded as the definitive book on how to use, optimize, and troubleshoot mod_perl. It’s an extensive guide to the nuts and bolts of the powerful and popular combination of Apache and mod_perl. From writing and debugging scripts to keeping your server running without failures, the techniques in this book will help you squeeze every ounce of power out of your server.
mod_perl is an Apache module that builds the power of the Perl programming language directly into the Apache web server, giving rise to a fast and powerful web programming environment.
The book covers the following topics, and more:
- Configuring mod_perl optimally for your web site.
- Porting and optimizing programs for a mod_perl environment.
- Performance tuning: getting the very fastest performance from your site.
- Controlling and monitoring the server to circumvent crashes and clogs.
- Integrating with databases efficiently and painlessly.
- Debugging tips and tricks.
- Maximizing security.
The site’s website has been down since October 2016, but there is a copy of the book available at archive.org.
The complete book is available online under the terms of the CreativeCommons Attribution Share-Alike License.
5. Exploring Programming Language Architecture in Perl by Bill Hails
By the end of this book you should have a thorough understanding of the inner workings of a programming language interpreter.
The source code is presented in full, and several iterations add more features until it could be considered pretty complete. The interpreter is written to be as easy to understand as possible; it has no clever optimizations that might obscure the basic ideas, and the code and the ideas will be described to the best of my ability without any unexplained technical jargon. It is however assumed that you have a good working knowledge of Perl (Perl5), including its object-oriented features.
Pages in this article:
Page 1 – Modern Perl and more books
Page 2 – Impatient Perl and more books
Page 3 – The Perl Reference Guide and more books
Page 4 – Perl 6 at a Glance and more books
Page 5 – Perl 5 Internals and more books
All books in this series:
|Free Programming Books|
|Java||General-purpose, concurrent, class-based, object-oriented, high-level language|
|C||General-purpose, procedural, portable, high-level language|
|Python||General-purpose, structured, powerful language|
|C++||General-purpose, portable, free-form, multi-paradigm language|
|C#||Combines the power and flexibility of C++ with the simplicity of Visual Basic|
|PHP||PHP has been at the helm of the web for many years|
|HTML||HyperText Markup Language|
|SQL||Access and manipulate data held in a relational database management system|
|Ruby||General purpose, scripting, structured, flexible, fully object-oriented language|
|Assembly||As close to writing machine code without writing in pure hexadecimal|
|Swift||Powerful and intuitive general-purpose programming language|
|Groovy||Powerful, optionally typed and dynamic language|
|Go||Compiled, statically typed programming language|
|Pascal||Imperative and procedural language designed in the late 1960s|
|Perl||High-level, general-purpose, interpreted, scripting, dynamic language|
|R||De facto standard among statisticians and data analysts|
|COBOL||Common Business-Oriented Language|
|Scala||Modern, object-functional, multi-paradigm, Java-based language|
|Fortran||The first high-level language, using the first compiler|
|Scratch||Visual programming language designed for 8-16 year-old children|
|Lua||Designed as an embeddable scripting language|
|Logo||Dialect of Lisp that features interactivity, modularity, extensibility|
|Rust||Ideal for systems, embedded, and other performance critical code|
|Lisp||Unique features - excellent to study programming constructs|
|Ada||ALGOL-like programming language, extended from Pascal and other languages|
|Haskell||Standardized, general-purpose, polymorphically, statically typed language|
|Scheme||A general-purpose, functional language descended from Lisp and Algol|
|Prolog||A general purpose, declarative, logic programming language|
|Forth||Imperative stack-based programming language|
|Clojure||Dialect of the Lisp programming language|
|Julia||High-level, high-performance language for technical computing|
|Awk||Versatile language designed for pattern scanning and processing language|
|BASIC||Beginner’s All-purpose Symbolic Instruction Code|
|Erlang||General-purpose, concurrent, declarative, functional language|
|VimL||Powerful scripting language of the Vim editor|
|OCaml||The main implementation of the Caml language|
|ECMAScript||Best known as the language embedded in web browsers|
|Bash||Shell and command language; popular both as a shell and a scripting language|
|LaTeX||Professional document preparation system and document markup language|
|TeX||Markup and programming language - create professional quality typeset text|
|Arduino||Inexpensive, flexible, open source microcontroller platform|
|Elixir||Relatively new functional language running on the Erlang virtual machine|
|F#||Uses functional, imperative, and object-oriented programming methods|
|Tcl||Dynamic language based on concepts of Lisp, C, and Unix shells|
|Factor||Dynamic stack-based programming language|
|Eiffel||Object-oriented language designed by Bertrand Meyer|
|Agda||Dependently typed functional language based on intuitionistic Type Theory|
|Icon||Wide variety of features for processing and presenting symbolic data|
|XML||Rules for defining semantic tags describing structure ad meaning|
|Vala||Object-oriented language, syntactically similar to C#|
|Standard ML||General-purpose functional language characterized as "Lisp with types"|
|D||General-purpose systems programming language with a C-like syntax|
|Dart||Client-optimized language for fast apps on multiple platforms|
|Markdown||Plain text formatting syntax designed to be easy-to-read and easy-to-write|
|Kotlin||More modern version of Java|
|Objective-C||Object-oriented language that adds Smalltalk-style messaging to C|
|VHDL||Hardware description language used in electronic design automation|
|J||Array programming language based primarily on APL|
|LabVIEW||Designed to enable domain experts to build power systems quickly|
|PostScript||Interpreted, stack-based and Turing complete language|
|Raku||Member of the Perl family of programming languages|