Programming Books

23 Excellent Free Books to Learn Perl

6. Impatient Perl by Greg London

Impatient PerlImpatient 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.
  • Subroutines.
  • 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.

Read the book


7. Perl & LWP by Sean M. Burke

Perl & LWPPerl & 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.

Read the book


8. Higher-Order Perl by Mark Jason Dominus

Higher-Order PerlHigher-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.

Read the book


9. Perl for the Web by Chris Radcliff

Perl for the WebPerl 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.

Read the book


10. Extreme Programming in Perl by Robert Nagler

Extreme Programming in PerlExtreme 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.

Read the book


Next page: Page 3 – The Perl Reference Guide and more books

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
AdaALGOL-like programming language, extended from Pascal and other languages
AgdaDependently typed functional language based on intuitionistic Type Theory
ArduinoInexpensive, flexible, open source microcontroller platform
AssemblyAs close to writing machine code without writing in pure hexadecimal
AwkVersatile language designed for pattern scanning and processing language
BashShell and command language; popular both as a shell and a scripting language
BASICBeginner’s All-purpose Symbolic Instruction Code
CGeneral-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
ClojureDialect of the Lisp programming language
ClojureScriptCompiler for Clojure that targets JavaScript
COBOLCommon Business-Oriented Language
CoffeeScriptTranscompiles into JavaScript inspired by Ruby, Python and Haskell
CoqDependently typed language similar to Agda, Idris, F* and others
CrystalGeneral-purpose, concurrent, multi-paradigm, object-oriented language
CSSCSS (Cascading Style Sheets) specifies a web page’s appearance
DGeneral-purpose systems programming language with a C-like syntax
DartClient-optimized language for fast apps on multiple platforms
DylanMulti-paradigm language supporting functional and object-oriented coding
ECMAScriptBest known as the language embedded in web browsers
EiffelObject-oriented language designed by Bertrand Meyer
ElixirRelatively new functional language running on the Erlang virtual machine
ErlangGeneral-purpose, concurrent, declarative, functional language
F#Uses functional, imperative, and object-oriented programming methods
FactorDynamic stack-based programming language
ForthImperative stack-based programming language
FortranThe first high-level language, using the first compiler
GoCompiled, statically typed programming language
GroovyPowerful, optionally typed and dynamic language
HaskellStandardized, general-purpose, polymorphically, statically typed language
HTMLHyperText Markup Language
IconWide variety of features for processing and presenting symbolic data
JArray programming language based primarily on APL
JavaGeneral-purpose, concurrent, class-based, object-oriented, high-level language
JavaScriptInterpreted, prototype-based, scripting language
JuliaHigh-level, high-performance language for technical computing
KotlinMore modern version of Java
LabVIEWDesigned to enable domain experts to build power systems quickly
LaTeXProfessional document preparation system and document markup language
LispUnique features - excellent to study programming constructs
LogoDialect of Lisp that features interactivity, modularity, extensibility
LuaDesigned as an embeddable scripting language
MarkdownPlain text formatting syntax designed to be easy-to-read and easy-to-write
Objective-CObject-oriented language that adds Smalltalk-style messaging to C
OCamlThe main implementation of the Caml language
PascalImperative and procedural language designed in the late 1960s
PerlHigh-level, general-purpose, interpreted, scripting, dynamic language
PHPPHP has been at the helm of the web for many years
PostScriptInterpreted, stack-based and Turing complete language
PrologA general purpose, declarative, logic programming language
PureScriptSmall strongly, statically typed language compiling to JavaScript
PythonGeneral-purpose, structured, powerful language
QMLHierarchical declarative language for user interface layout - JSON-like syntax
RDe facto standard among statisticians and data analysts
RacketGeneral-purpose, object-oriented, multi-paradigm, functional language
RakuMember of the Perl family of programming languages
RubyGeneral purpose, scripting, structured, flexible, fully object-oriented language
RustIdeal for systems, embedded, and other performance critical code
ScalaModern, object-functional, multi-paradigm, Java-based language
SchemeA general-purpose, functional language descended from Lisp and Algol
ScratchVisual programming language designed for 8-16 year-old children
SQLAccess and manipulate data held in a relational database management system
Standard MLGeneral-purpose functional language characterized as "Lisp with types"
SwiftPowerful and intuitive general-purpose programming language
TclDynamic language based on concepts of Lisp, C, and Unix shells
TeXMarkup and programming language - create professional quality typeset text
TypeScriptStrict syntactical superset of JavaScript adding optional static typing
ValaObject-oriented language, syntactically similar to C#
VHDLHardware description language used in electronic design automation
VimLPowerful scripting language of the Vim editor
XMLRules for defining semantic tags describing structure ad meaning

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.