Arrives in 3-7 Business Days
Many programmers would love to use Perl for projects that involve heavy lifting, but miss the many traditional algorithms that textbooks teach for other languages. Computer scientists have identified many techniques that a wide range of programs need, such as:
- Fuzzy pattern matching for text (identify misspellings!)
- Finding correlations in data
- Game-playing algorithms
- Predicting phenomena such as Web traffic
- Polynomial and spline fitting
The best thing about Mastering Algorithms in Perl is the scope at which it covers the universe of algorithms while refraining from getting bogged down in academic detail. Besides basic data structures--a lynchpin of books on algorithms--the authors provide dozens and dozens of algorithms for sorting, searching, and doing mathematical computations of all kinds. While they discuss "Big-O" notation and assume a general familiarity with math, they don't overwhelm the reader. (You can even borrow the code without needing a math degree to understand it.) The focus is on efficient, reusable Perl subroutines written and compiled by three Perl experts.
Standout chapters include extending Perl's already powerful string processing abilities, game programming, and cryptography. Generally, the authors achieve a good mix of more advanced (and less well-known) algorithms, along with the basics. Chances are you won't need to use all the dozen or so sorting algorithms presented here, but the authors include them all, just in case. As a reference and tutorial, readers can pick and choose what they need for real-world Perl development.
There hasn't been a book dedicated exclusively to Perl algorithms prior to the publication of this one. In all, Mastering Algorithms in Perl fills a useful niche by compiling a powerful library of Perl algorithms that will be useful for anyone who works with this programming language, whether in business or academic computing. --Richard Dragan
Topics covered: Perl data types, Big-O notation, data structures, queues, deques, linked lists, binary trees, sorting and searching algorithms, game and dynamic programming, sets and multisets, matrices and graphs, string matching and parsing, 2-D geometry, number systems, cryptography (including DES and RSA), probability, statistics, and numerical analysis.