I watched an MIT lecture on youtube demonstrating some of the abstraction power of LISP. Then I tried my hand at duplicating the functionality in Perl. Below I will post the LISP code, and the Perl equivalent.

The idea was to use the same logic, that is, recursive logic. Also the iterator is supplied to the sum subroutine in my example (as it is given in the LISP version). By using codereferences instead of normal subroutines, you simplified the passing of arguments. This has the effect, however, of making $sq and $id no longer callable in the same fashion as sum_sq is.

I like your use of //=, but I think the brevity of your code is due to simplification of, and less-strict adherence to, the LISP example.

This is second time I saw the name 'High Order Perl'. It took me much time to remember the days with common lisp, but I tried anyway. I wonder what does mit classes uses for lisp? It seems different from common lisp...