Mastering Algorithms with Perl and over one million other books are available for Amazon Kindle. Learn more

Buy New

or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Buy Used
Used - Very Good See details
$7.11 & eligible for FREE Super Saver Shipping on orders over $25. Details

or
Sign in to turn on 1-Click ordering.
 
   
Kindle Edition
 
   
More Buying Choices
Have one to sell? Sell yours here
Mastering Algorithms with Perl
 
 
Start reading Mastering Algorithms with Perl on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Mastering Algorithms with Perl [Paperback]

John Macdonald (Author), Jon Orwant (Author), Jarkko Hietaniemi (Author)
4.3 out of 5 stars  See all reviews (20 customer reviews)

List Price: $39.99
Price: $23.00 & eligible for FREE Super Saver Shipping on orders over $25. Details
You Save: $16.99 (42%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Only 1 left in stock--order soon (more on the way).
Want it delivered Friday, May 25? Choose One-Day Shipping at checkout. Details

Formats

Amazon Price New from Used from
Kindle Edition $15.39  
Paperback $23.00  
Unknown Binding --  
Like this book? Find similar titles from O'Reilly and Partners in our O'Reilly Bookstore.

Book Description

August 25, 1999

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

Using algorithms explained in this book, you too can carry out traditional programming tasks in a high-powered, efficient, easy-to-maintain manner with Perl.

This book assumes a basic understanding of Perl syntax and functions, but not necessarily any background in computer science. The authors explain in a readable fashion the reasons for using various classic programming techniques, the kind of applications that use them, and -- most important -- how to code these algorithms in Perl.

If you are an amateur programmer, this book will fill you in on the essential algorithms you need to solve problems like an expert. If you have already learned algorithms in other languages, you will be surprised at how much different (and often easier) it is to implement them in Perl. And yes, the book even has the obligatory fractal display program.

There have been dozens of books on programming algorithms, some of them excellent, but never before has there been one that uses Perl.

The authors include the editor of The Perl Journal and master librarian of CPAN; all are contributors to CPAN and have archived much of the code in this book there.

"This book was so exciting I lost sleep reading it." Tom Christiansen


Frequently Bought Together

Customers buy this book with Perl Cookbook, Second Edition $32.97

Mastering Algorithms with Perl + Perl Cookbook, Second Edition
  • This item: Mastering Algorithms with Perl

    In Stock.
    Ships from and sold by Amazon.com.
    Eligible for FREE Super Saver Shipping on orders over $25. Details

  • Perl Cookbook, Second Edition

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details


Customers Who Bought This Item Also Bought


Editorial Reviews

Amazon.com Review

Written for readers with at least some Perl programming experience, Mastering Algorithms in Perl delivers a solid library of algorithms written in Perl for business and mathematical computing. From data structures to cryptography and more advanced mathematical algorithms, this book provides a worthwhile guide to extending Perl's coding capabilities.

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.

From Library Journal

Perl is very similar to C in syntax, and while Perl doesn't have the speed of complied C, it has been getting much faster. It also is one of the most portable languages, available for most hardware with no changes in code. It is free, which makes it very attractive to developers. This guide covers everything from data structures, sorting and searching, to sets and matrices, to cryptography, probability, and statistics. Readers must already know Perl, so this is recommended for advanced programming collections.
Copyright 1999 Reed Business Information, Inc.

Product Details

  • Paperback: 706 pages
  • Publisher: O'Reilly Media; 1st edition (August 25, 1999)
  • Language: English
  • ISBN-10: 1565923987
  • ISBN-13: 978-1565923980
  • Product Dimensions: 9.2 x 7.1 x 1.3 inches
  • Shipping Weight: 2.2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (20 customer reviews)
  • Amazon Best Sellers Rank: #438,870 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews
29 of 30 people found the following review helpful
more perl than algorithms ... December 18, 1999
By A Customer
Format:Paperback|Amazon Verified Purchase
After reading rave reviews about this book all over the net, I decided to check it out. I found it a bit disappointing for several reasons. First, there appear to be type setting errors that are distracting. For example, there are sections with example code with text that follows, only the text that follows appears to be introducing the next code snippet, but is actually describing the snippet above (off by 1 error?) Indeed the final code snippet in a section has no following explanatory text.

This is only a problem early on though because as the book progresses, the authors stop describing the code examples! In fact, I found myself trying to figure out what the text was doing in the chapters since all of the concepts were explained in code (without full explanations in the text). <this is a minor exaggeration>

In addition, I found the unrelated annecdotes and allusions and obscure literary quotes a further distraction. I'm sure there is a certain academic audience that would appreciate this, but I hate having to look up words only to find out I didn't really need to look them up ;-).

Some other things I disliked were the absence of hashes in the data structures section (perl has built in hashes, so you'd think a discussion on what a hash is, and hashing algorithms would be included in a perl algorithms book), and the description of algorithm analysis was too short.

On the up side, the sorting and searching sections are very thorough (the perl code implementing them, not the text explaining the code), as are the other sections. If its perl your after, this book has some of the best perl code in print (save for Joseph Hall's "Effective Perl").

In summary, if you already understand these topics, then this book will show you some excellent perl code to implement them. If you do not understand the data structures and algorithms already, I don't think this book is going to make them crystal clear (though the authors are good about referring the reader to other sources).

4 camels for the high quality perl code and thoroughness, but it could have been 5 if the authors followed through with the type of supporting text that Hall did in EP.

Comment | 
Was this review helpful to you?
20 of 20 people found the following review helpful
Nice introduction May 9, 2001
Format:Paperback
This book ia fairly good introduction to the use of PERL in developing and implementing various algorithms, including scientific and cryptographic ones. Fortunately, source is included, setting the book apart from the usual books on computer algorithms.

The first few chapters outline PERL data structures, with the built-in data structures discussed, along with a discussion of how to create new ones. The dynamic nature of arrays in PERL is emphasized, and this is a feature that sets PERL way above other languages, such as C and C++. Linked lists are given a detailed treatment along with garbage collection in PERL. The authors are careful to point out that reference counting in PERL will fail when one is dealing with a circle of reference values.

A discussion of sorting follows, with radix and hybrid sorts being the most useful of the algorithms discussed. The authors give a useful comparison study of the running time of the sorting algorithms. This is followed by a discussion of searching algorithms, which unfortunately omits any details of dynamic programming, which is useful in applying PERL to areas such as computational biology.

The authors give a very interesting treatment of how to do set operations using PERL in the next chapter. They did not treat the case of fuzzy sets in detail though, unfortunately.

Matrix algorithms are discussed next, with the PERL modules MatrixRead and PDL integrated into the discussion. I have only used PDL and its graphic library PGPLOT and have had varying degress of success with it. PERL still has a long way to go before it is accepted as a language suitable for numerical computations.

Graph algorithms are the subject of the next chapter. The most useful section is the one on minimum spanning trees, so useful in network routing algorithms.

This is followed by a thorough discussion of string algorithms in Chapter 9. These algorithms are extremely important in current applications, such as string matching and alignment in computational biology. That the authors give the source code for the algorithms is extremely helpful to those who need to apply these algorithms.

The authors return to geometric algorithms in the next chapter, with only elementary ones being discussed, with brief overviews of PERL graphics modules available.

Number systems and numerical precision are taken up in the next chapter, with 32 bit precision implemented in the discussion. The authors do however discuss how large number arithmetic can be implemented in PERL via the BigFloat and BigInt modules. This is followed by modular arithmetic and number theory , with PERL code given for the Miller-Rabin primality test. This chapter is very short, but it sets up the next chapter on cryptography, which begins with a discussion of passwords, with a PERL program given that checks valid passwords. Then, interestingly, a PERL 1-liner is given for cracking a password list. The discussion on passwords should be of interest to individuals first entering the field of computer security. This is followed by a fairly complete elaboration on authentication and checksums. Encryption of data is discussed in the next section, along with a brief mention of the AES, which at the time of publication of this book, was not settled. The RSA algorithm is discussed also, with a 3-line PERL code given for it, along with a more instructive version later. Only one section on steganography is included, and since this is a subject of intense research with useful applications, this is somewhat disappointing.

The last three chapters covers probability and statistics and numerical analysis, and given the growing use of PDL in astrophysics and other areas of science, this is a fitting way to end the book. PERL code is given for the most popular probability distributions, and also for some of the standard statistical tests. Only some rudimentary algorithms are given for calculus and data interpolation, but the discussion should prepare the reader for more advanced reading in numerical algorithms using PERL and the use of PDL.

Comment | 
Was this review helpful to you?
18 of 20 people found the following review helpful
Execellent Book October 28, 1999
Format:Paperback

When I heard that O'Reilly was publishing a book on Algorithms in Perl I couldn't wait to get my hands on it. Well last month I did and it was great!

The clearly written text contains the usual light, easy-reading tone and occasional humorous elements found in most O'Reilly books. The authors include plenty of pictures and diagrams for those who learn visually (rather then by reciting words out loud). The Perl code within is concise, with comments when necessary, and makes use of the objects when possible. If you plan to read this book you should know Perl because the more advanced level of the code could cause problems for the non-Perl or beginning Perl Programmer. However, to a Perl programmer who is comfortable with the language the code reads clean and understandably - sometimes it's even more clear then pseudocode.

The text covers a broad range of topics (with varying levels of complexity). When I was reading I recalled things I learned in college classes such as: Data Structures, Algorithm Analysis, Discrete Math, Calculous, Linear Algebra, Statistics, Compiler Design, Signal Processing, and even some good old fashion high school geometry. I found this extremely helpful because the broad nature of the book doesn't allow the authors to cover a topic in great detail. They do review each topic area giving the proper terminology used along with background of how the field developed.

Within the different chapters the authors present various code segments. For some segments the authors have written there own code to implement the algorithms. In other cases, as is Perl custom, the authors have searched CPAN for the modules that implement the algorithm. Then the example code demonstrates the proper use of that module.

One of the features I really enjoyed is that each chapter can stand on its own as a nice review of the algorithms in that section. (In cases where they build on other sections you are reminded where to go and read.) Another great feature the authors include is the references - all the web sites and books you'll need are listed in Appendix A, by topic area.

The only thing I really felt was missing was a discussion on some AI topics such as Neural Networks and Genetic Programming. (If you're interesting Neural Networks in general check out The Linux Journal July 1999 p 44. For Genetic Programming in Perl check out The Perl Journal Fall 1999 p 34)

Overall, this book explains methods of implementing Algorithms with Perl blending custom techniques with resources available (CPAN) in a "learn by example" approach. It contains 16 great chapters of background, theory, sample code, diagrams, and discussion. It has a good Appendix A (for additional info on algorithms) and a useful ASCII table in Appendix B. If you want to learn good ways to implement specific Algorithms with Perl - Read this book!

Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
Perl How and Why
It's another one of those useful blue O'Reilly books with an animal on the front. A wolf, in this case. Read more
Published 7 days ago by John M. Ford
Excellent.
Excellent. Mastering Algorithms with Perl starts off with basic language optimizations and then becomes an inexhaustible tome of algorithms, including: quick-sort, prime-number... Read more
Published 8 months ago by Bryan C. Geraghty
Great book for all Computer Scientists
Great book with detailed description of algorithms beautifully explained in Perl, which we have learned either in C or C++ or higher Mathematics. Read more
Published 18 months ago by Kuldeep
Enjoyable, broad-ranging coverage of algorithms
This is a very accessible introduction to data structures and algorithms in Perl. It doesn't go into a lot of theory, it isn't going to answer your computer science homework, but... Read more
Published on July 23, 2007 by Thing with a hook
Accessible discussion of algorithm topics implemented in Perl
If you have ever studied algorithms and data structures, then balanced trees and O(N) notation may still be a painful memory. Read more
Published on December 16, 2006 by calvinnme
Good implementation of popular algorithms
Klowledge of algorithms and data structures is vital for effective programming, and Perl is one of the most popular programming languages around, so this book fills a long-needed... Read more
Published on May 26, 2005 by Eli Bendersky
A great book on the subject
This book is a great book, not only on the subject of algorithms, but also on how to implement them in Perl. Read more
Published on July 28, 2004 by S. Pow Jr.
MAP makes many promises, but fails to deliver.
As a guy ( engineer not computer expert ) who uses computers everyday to help his research, I would steer you away from using Perl for any task involving mathematical concepts more... Read more
Published on August 18, 2003
Kansas City Perl Mongers: Book Review
Mastering Algorithms with Perl is an intermediate to advanced text describing traditional algorithms and data structures through Perl. It assumes a basic understanding of Perl. Read more
Published on January 20, 2003 by C. Garrett Goebel
Perfect for Engineers/Scientists
I picked up this book recently, and have not yet finished it, but from what I have read and glanced through, I can already tell this is an excellent book. Read more
Published on June 21, 2002 by Edward J Gorcenski
Search Customer Reviews
Only search this product's reviews

Inside This Book (learn more)
First Sentence:
In this chapter, we'll discuss how to "think algorithms"-how to design and analyze programs that solve problems. Read the first page
Key Phrases - Statistically Improbable Phrases (SIPs): (learn more)
naïve matcher, wallclock secs, return undef, sub literal, proportional search, anonymous hash, constant epsilon, transpose table, module bundled, advanced data structures, hash reference, prefix function, print round, sub error, tail pointer, return sqrt, odd median, heap order, sink vertex, binary heap, radix sort, sorting routine, use integer, successor vertex, insertion sort
Key Phrases - Capitalized Phrases (CAPs): (learn more)
Schwartzian Transform, Sula Center, Wolfbane Corners, World Wide Web, Graph Classes, Numerical Recipes, Recurrent Themes, Graph Biology, Mark Jason Dominus, Paul Marquess, Solving Equations, Authorizing People, East Prussia, Efficiency Tip, Eric Young, Gabriel's Horn, Obscuring Data, Pentium Pro, Ron Rivest, Vanilla Flats, Very Big, Floyd Warshall
New!
Books on Related Topics | Concordance | Text Stats
Browse Sample Pages:
Front Cover | Table of Contents | First Pages | Index | Back Cover | Surprise Me!
Search Inside This Book:



Books on Related Topics (learn more)

What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(6)

Your tags: Add your first tag
 

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums



So You'd Like to...


Create a guide


Look for Similar Items by Category


Look for Similar Items by Subject