Amazon.com: Mastering Algorithms with Perl (0636920923985): John Macdonald, Jon Orwant, Jarkko Hietaniemi: Books
Mastering Algorithms with Perl and over one million other books are available for Amazon Kindle. Learn more


or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
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 (19 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 6 left in stock--order soon (more on the way).
Want it delivered Monday, February 27? Choose One-Day Shipping at checkout. Details

Formats

Amazon Price New from Used from
Kindle Edition $15.39  
Paperback $23.00  
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

Mastering Algorithms with Perl + Advanced Perl Programming + Perl Cookbook, Second Edition
Price For All Three: $85.00

Show availability and shipping details

Buy the selected items together
  • In Stock.
    Ships from and sold by Amazon.com.
    Eligible for FREE Super Saver Shipping on orders over $25. Details

  • Advanced Perl Programming $29.03

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

  • Perl Cookbook, Second Edition $32.97

    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: 704 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 (19 customer reviews)
  • Amazon Best Sellers Rank: #311,019 in Books (See Top 100 in Books)

More About the Author

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

 

Customer Reviews

19 Reviews
5 star:
 (13)
4 star:
 (3)
3 star:    (0)
2 star:
 (2)
1 star:
 (1)
 
 
 
 
 
Average Customer Review
4.3 out of 5 stars (19 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

29 of 30 people found the following review helpful:
4.0 out of 5 stars more perl than algorithms ..., December 18, 1999
By A Customer
Amazon Verified Purchase(What's this?)
This review is from: Mastering Algorithms with Perl (Paperback)
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.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


20 of 20 people found the following review helpful:
4.0 out of 5 stars Nice introduction, May 9, 2001
This review is from: Mastering Algorithms with Perl (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.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


18 of 20 people found the following review helpful:
5.0 out of 5 stars Execellent Book, October 28, 1999
By 
This review is from: Mastering Algorithms with Perl (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!

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent 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


Listmania!


So You'd Like to...



Look for Similar Items by Category


Look for Similar Items by Subject