Most Perl programmers, including the inventor of Perl, were originally trained as C and UNIX programmers. So the Perl programs that they write bear a strong resemblance to C programs. But Perl incorporates many features that have their roots in non-C programming languages such as LISP. These advanced features are not well understood and are rarely used by most Perl programmers, but they are very powerful. They can automate tasks in everyday programming that are difficult to solve any other way, and also serve as an introduction to the techniques of functional programming for those who have not have come across them in a computer science curriculum. Functional programming is important because it can make code more flexible and reusable. Instead of writing ten similar functions, a programmer can write a general pattern or framework that can then create the functions as needed according to the pattern. So instead of the programmer writing the whole program, the computer does the work. The application of these techniques to Perl has been the work of Mark Jason Dominus for many years. A well-known Perl developer, Mark is the author of several standard Perl modules and was the managing editor of www.perl.com from 1999-2001. He was also a columnist for The Perl Journal for several years and is a frequent speaker and lecturer at numerous Perl conferences and meetings.