cfperl from the beginning
Perl expert Ted Zlatanov embarks on a new coding project to create cfperl, a cfengine interpreter written in Perl. Starting where any well-developed project should -- at the beginning -- Ted investigates licensing options and version control, sets up a schedule for completing the work, and does a little research to make sure he's not copying anyone.
This chapter is from Ted's book, At the Helm, being published serially on the Web in the developerWorks column The road to better programming.
To quote Frank Herbert, "the beginning is a delicate time." This chapter is the beginning of a discussion of the cfperl project. The cfperl project brings together many of the topics covered in the developerWorks Linux zone articles: Perl, cfengine, parsing of text, and writing good clean code (see Resources for more background on cfengine).
The cfperl project began for me when I realized that cfengine, a wonderful system administration tool, could benefit from features present in Perl but difficult to implement as cfengine modules or C extensions. For instance, cfengine's file editing abilities were decidedly awkward compared to the more natural (to me) Perl constructs.
In essence, cfperl was an itch I needed to scratch. I conceived it as a tool that could augment cfengine, not as a tool that could replace it. The next few chapters will cover the ideas and planning I put into the cfperl project. It is a project I did (and still am doing) for fun; it is not finished by far. What I hope to teach is the approach I took to cfperl, and how it might apply to your own projects.