Last Updated on October 17, 2023
6. Impatient Perl by Greg London
Impatient Perl is designed for individuals who wish to learn Perl or individuals that already program in Perl and do not have the patience to search for information to learn and use Perl.
The book should serve as a useful desk reference for common Perl related questions.
The book offers good coverage.
Topics covered include:
- The three basic storage types:
- Scalars – store strings, numbers (integers and floats), references, and filehandles.
- Arrays – stores a collection of scalars via an integer index.
- Hashes – stores scalars that are accessed via a string index.
- List Context – a concept built into the grammar of Perl.
- References – points to something else.
- Control Flow – allow developers to alter the order of execution while the application is running.
- Packages and Namespaces and Lexical Scoping.
- Compiling and Interpreting – compiling translates the source test into machine usable internal format; interpreting – executing the machine usable, internal format.
- Code Reuse, Perl Modules – a discrete component of software for the Perl programming language.
- The use Statement – allows a Perl script to bring in a Perl module and what declarations that have been made available by the module.
- bless() – this function changes the string that would be returned when ref() is called.
- Method Calls.
- Procedural Perl.
- Object Oriented Perl.
- Object Oriented Review.
- CPAN – Comprehensive Perl Archive Network which contains a huge number of Perl modules to download.
- The Next Level.
- Command Line Arguments.
- File Input and Output – Perl has functions used for reading from and writing to files.
- Operating System Commands.
- Regular Expressions – the text processing workhouse of Perl. Regular expressions lets you search strings for patterns, find out what matched the patterns, and substitute the matched patterns with new strings.
- Modifiers – regular expressions can take optional modifiers that tell Perl additional information about how to interpret the regular expression.
- Parsing with Parse::RecDescent.
- Perl, GUI and Tk.
This book is made available under the GNU Free Documentation License, Version 1.3 or later. The author has kindly given permission for this article to include a copy of the front-cover.
7. Perl & LWP by Sean M. Burke
Perl & LWP instructs how individuals can write web client applications with LWP and its related HTML modules. Library for WWW in Perl is a set of modules that allow requests to be sent to the web.
The book has chapters on:
- Web Basics – covers the construction of URLs and the concepts behind HTTP. You’ll learn how to automate the most basic web tasks with the LWP::Simple module.
- The LWP Class Model – introduces the classes that LWP uses to represent browser objects and response objects.
- URLs – parsing, constructors, output, comparison, components of a URL, and queries.
- Forms – shows you how to write programs to submit form data and get the resulting page.
- Simple HTML Processing with Regular Expressions.
- HTML Processing with Tokens – use a rudimentary approach to processing HTML source: Perl regular expressions.
- Tokenizing Walkthrough – walks though the implementation of a data extraction task.
- HTML Processing with Trees – teaches you how to use the HTML::TreeBuilder module to construct trees from HTML, and how to process those trees to extract information.
- Modifying HTML with Trees – four ways in which a tree can be altered: alter a node’s attributes; delete a node; detach a node and reattach it elsewhere; add a new node.
- Cookies, Authentication and Advanced Requests.
- Spiders – how to write recursive web user agents, spiders.
This book is aimed at someone who already knows Perl and HTML.
This “1.1” edition of Perl and LWP is available online under the terms of the Creative Commons Attribution Share-Alike License.
8. Higher-Order Perl by Mark Jason Dominus
Higher-Order Perl introduces powerful programming methods new to most Perl programmers that were previously the domain of computer scientists.
The book gradually builds up confidence by describing techniques of progressive sophistication.
The book also shows how to improve everyday programs and includes numerous engaging code examples to illustrate the methods.
You may download the book for your personal use, but you may not distribute it to other people, either individually or by uploading it to a file-sharing service.
9. Perl for the Web by Chris Radcliff
Perl for the Web provides the tools and principles needed to design a high-performance, dynamic Web site using Perl. Special attention is given to templates, integration, and load testing.
Topics covered include the need for speed, document management with templates and embedded Perl, faster performance using persistent Perl, good Web coding style, faster database access from Perl, and pairing XML with Perl for content management and B2B communication.
Emphasis is placed on robust, scalable solutions for dynamic database-backed, template-based or XML-based Web sites. The book’s focus on optimization is a unique approach. Readers of this book should be able to build a high-performance Perl-based Web solution as well as recommend one with confidence.
10. Extreme Programming in Perl by Robert Nagler
Extreme Perl is a book about Extreme Programming, a software development methodology that enables users, business people, programmers, and computers to communicate effectively, using the programming language Perl.
This book invites Perl programmers and their customers to take a fresh look at software development. Customers, and business people in general, will learn how Extreme Programming enables customer-programmer communication for efficient and flexible requirements gathering. Programmers will see how the methodology’s focus on teamwork, incremental testing, and continuous design allows them to take pride in their craft.
Areas covered include:
- Release Planning – a list of stories (requirements) prioritized by business value.
- Iteration Planning – a prioritized list of development tasks estimated by the people who will be implementing them.
- Pair Programming – the output is one or more unit tests and the software that passes those tests.
- Tracking – explains how tracking works, what’s tracked, ways to keep everybody informed, and most importantly, how to get back on track.
- Acceptance Testing – demonstrates how the customer can create automated acceptance tests. Acceptance tests are explained in general and with example test scripts.
- Coding Style – explains the need for a coding style in XP and discusses how to go about creating one.
- Test Driven Design – introduces test-driven design through the implementation of an exponential moving average (EMA), a simple but useful mathematical function. This chapter also explains how to use the CPAN modules Test::More and Test::Exception.
- Continuous Design – evolves the design we started in Test-Driven Design.
- Unit Testing – test a post office protocol (POP3) client available from CPAN.
- Refactoring – demonstrates several refactorings in the context of a single example, Mail::POP3Client.
The book is licensed under a Creative Commons Attribution 4.0 International License.
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|
|Ada||ALGOL-like programming language, extended from Pascal and other languages|
|Agda||Dependently typed functional language based on intuitionistic Type Theory|
|Arduino||Inexpensive, flexible, open source microcontroller platform|
|Assembly||As close to writing machine code without writing in pure hexadecimal|
|Awk||Versatile language designed for pattern scanning and processing language|
|Bash||Shell and command language; popular both as a shell and a scripting language|
|BASIC||Beginner’s All-purpose Symbolic Instruction Code|
|C||General-purpose, procedural, portable, high-level language|
|C++||General-purpose, portable, free-form, multi-paradigm language|
|C#||Combines the power and flexibility of C++ with the simplicity of Visual Basic|
|Clojure||Dialect of the Lisp programming language|
|COBOL||Common Business-Oriented Language|
|Coq||Dependently typed language similar to Agda, Idris, F* and others|
|Crystal||General-purpose, concurrent, multi-paradigm, object-oriented language|
|CSS||CSS (Cascading Style Sheets) specifies a web page’s appearance|
|D||General-purpose systems programming language with a C-like syntax|
|Dart||Client-optimized language for fast apps on multiple platforms|
|Dylan||Multi-paradigm language supporting functional and object-oriented coding|
|ECMAScript||Best known as the language embedded in web browsers|
|Eiffel||Object-oriented language designed by Bertrand Meyer|
|Elixir||Relatively new functional language running on the Erlang virtual machine|
|Erlang||General-purpose, concurrent, declarative, functional language|
|F#||Uses functional, imperative, and object-oriented programming methods|
|Factor||Dynamic stack-based programming language|
|Forth||Imperative stack-based programming language|
|Fortran||The first high-level language, using the first compiler|
|Go||Compiled, statically typed programming language|
|Groovy||Powerful, optionally typed and dynamic language|
|Haskell||Standardized, general-purpose, polymorphically, statically typed language|
|HTML||HyperText Markup Language|
|Icon||Wide variety of features for processing and presenting symbolic data|
|J||Array programming language based primarily on APL|
|Java||General-purpose, concurrent, class-based, object-oriented, high-level language|
|Julia||High-level, high-performance language for technical computing|
|Kotlin||More modern version of Java|
|LabVIEW||Designed to enable domain experts to build power systems quickly|
|LaTeX||Professional document preparation system and document markup language|
|Lisp||Unique features - excellent to study programming constructs|
|Logo||Dialect of Lisp that features interactivity, modularity, extensibility|
|Lua||Designed as an embeddable scripting language|
|Markdown||Plain text formatting syntax designed to be easy-to-read and easy-to-write|
|Objective-C||Object-oriented language that adds Smalltalk-style messaging to C|
|OCaml||The main implementation of the Caml language|
|Pascal||Imperative and procedural language designed in the late 1960s|
|Perl||High-level, general-purpose, interpreted, scripting, dynamic language|
|PHP||PHP has been at the helm of the web for many years|
|PostScript||Interpreted, stack-based and Turing complete language|
|Prolog||A general purpose, declarative, logic programming language|
|Python||General-purpose, structured, powerful language|
|QML||Hierarchical declarative language for user interface layout - JSON-like syntax|
|R||De facto standard among statisticians and data analysts|
|Racket||General-purpose, object-oriented, multi-paradigm, functional language|
|Raku||Member of the Perl family of programming languages|
|Ruby||General purpose, scripting, structured, flexible, fully object-oriented language|
|Rust||Ideal for systems, embedded, and other performance critical code|
|Scala||Modern, object-functional, multi-paradigm, Java-based language|
|Scheme||A general-purpose, functional language descended from Lisp and Algol|
|Scratch||Visual programming language designed for 8-16 year-old children|
|SQL||Access and manipulate data held in a relational database management system|
|Standard ML||General-purpose functional language characterized as "Lisp with types"|
|Swift||Powerful and intuitive general-purpose programming language|
|Tcl||Dynamic language based on concepts of Lisp, C, and Unix shells|
|TeX||Markup and programming language - create professional quality typeset text|
|Vala||Object-oriented language, syntactically similar to C#|
|VHDL||Hardware description language used in electronic design automation|
|VimL||Powerful scripting language of the Vim editor|
|XML||Rules for defining semantic tags describing structure ad meaning|