[Kc] Book Review: Extending and Embedding Perl

D. Hageman dhageman at dracken.com
Mon Mar 24 10:33:34 CST 2003


Excellent review!

Last week I wrote my first perl interface to a C library.  It was quite a 
bit of fun, but I discovered that documentation is severly lacking.  I had 
the most trouble with the "typemap".  It seems that all documents just 
seem to gloss over this very important part of the process.  

A collection of good examples that really helped me out can be found at:

http://search.cpan.org/author/DMR/

Dean Roehrich has two little "CookBooks" on the subject matter.




On Mon, 24 Mar 2003, Garrett Goebel wrote:

> Extending and Embedding Perl
> Tim Jenness and Simon Cozens
> 
> Extending and Embedding Perl is as it boldly states on the cover: "The
> definitive guide to XS, embedding, and the Perl internals". This book is
> well organized and information dense. One could spend days sifting through
> the available perlapi, perlcall, perlembed, perlguts perlxs, perlxstut, and
> h2xs documentation. After which you'll probably understand very well
> references to nethack's "You are in a maze of twisty little passages all
> alike". Or you could get yourself a copy of this book and find your way out
> of the maze.
> 
> Most of the available documentation on extending and embedding perl is
> written from the prospective of the core perl developers for core perl
> developers. This book is written for advanced Perl programmers who for
> whatever reason need or wish to peer into that netherworld between Perl, C,
> and the glue that interfaces Perl with other languages. It is a deliberate
> thorough guide led by authors that are both extremely knowledgeable and also
> capable of communicating that knowledge.
> 
> While it would greatly reduce the learning curve, no prior knowledge of C is
> required to read this book. This is a surprising claim and while it won't be
> easy, this reader is proof that someone with little true knowledge of C can
> in fact read and for the most part comprehend what the authors wish to
> convey. 
> 
> There are clearly areas for improvement. Things like NULL being used
> throughout chapter 3, only to finally be defined later in a footnote in
> chapter 4. And other cases of terms being used before they are explained.
> Things that leave the reader juggling unnecessarily until the information is
> provided that lets understanding fall into place. But for the most part, if
> you are a competent juggler and are patient your questions will eventually
> be answered. You won't walk away a C programmer, but you will learn enough
> to solve the problems which led you to consider reading this book in the
> first place.
> 
> One thing I liked very much about the layout of the book is how it switches
> back between presenting sections on C programming and Perl. The authors
> revisit C each time it is necessary to understand the next Perl internals
> topic. Those that are learning C or need the review receive the relevant
> information just before it is required. 
> 
> Over the course of the book, you'll learn about interfacing from Perl to C
> and C back to Perl. For those that must plug references to Tolkien in things
> Perl... you can go back and rephase that into an appropriate reference to
> Bilbo's book "There and Back Again". You'll also learn the perl api, data
> structures for core variable types, and how to work with scalars, arrays,
> hashes, strings, regular expressions, file handles, typeglobs, objects,
> callbacks and PDL with C and C++. And there is even mention of working with
> Fortran, Java, and more esoteric alternatives.
> 
> The book finishes with an in depth look at Perl internals: the parser,
> tokenizer, op code trees, execution, and compiler. And closes with a
> discussion of the Perl development process: How it may be monitored and
> participated in.
> 
> What's missing? Detailed coverage of the I/O subsystem and the regular
> expression engine. I.e., topics which might themselves make for a good book.
> There was also light coverage on things like scratchpads. There were times
> while reading when I didn't know whether the issue being discussed was fully
> covered or curtailed. But you will certainly find better coverage of the
> issues in this book than elsewhere. This is an impressive book. I hope it
> will greatly influence the way Perl6 internals are documented.
> 
> 

-- 
//========================================================\\
||  D. Hageman                    <dhageman at dracken.com>  ||
\\========================================================//



More information about the kc mailing list