Thought I'd also have a go at translating ch-1.pl and ch-2a.pl into C.. Both C versions produce near-identical (non-debugging and even debugging) output to the Perl originals. The C translation of ch-2a.pl was quite hard to write, mainly on storage allocation, to minimise that I changed it to a per-list callback (from building a list of paths) They use most of my regular support modules: - a command-line argument processing module args.[ch], - a csvlist-of-int parsing module parseints.[ch], and - an int-array printing module printarray.[ch].