Recent additions to CPAN
Invisible Servants
Perl programmers who upload a module or script to CPAN, often forget to specify the dependencies on other CPAN modules. Consequently, the installation fails for all users who do not already have the dependent modules on their systems by lucky coincidence. The CPAN Module::ScanDeps module [6] contains the scandeps.pl
script, which expects a script or module as an argument and outputs the dependencies for it.
Applied to the script presented in Listing 3, the output of:
scandeps.pl make2viz
looks like Figure 4. Who would have thought that deep in the belly of GraphViz::Makefile the IPC::Run::Win32Helper module has an important role as part of the digestive system? Linux systems are undoubtedly ill-advised to integrate this; if it were missing on the installation platform, however, Perl would abort the script in the compile phase because it can't find the seemingly required module.
Multiple-Course Meal
In many command-line utilities, the programmer expects some input by selection from a list of items by the user. For Perl scripts, CPAN offers several text terminal menu simulations. In the list of new module versions that I reviewed, my attention was grabbed by Term::Menus [7]; it offers a convenient programming interface for cases in which the user needs to select an entry from a potentially large list.
Listing 4 shows an example of a script in which the user has to select a file from his home directory. Failure to clean up for many years has led to no fewer than 73 files on my Linux box at home. They are unlikely to fit in a terminal window. As Figure 5 shows, Text::Menus displays 10 items at a time and allows the user to press D to scroll down and U to scroll up through the list.
Listing 4
menu
By entering a number, the user finally selects an entry. In the menu
script in Listing 4, this is then returned as result of the pick()
function in the $selection
variable. Term::Menus offers more features on top of that, such as multiple choices or submenus. These are all very handy when you consider that script programmers only need to invest in a few lines of code for this.
Finding Nuggets
A cursory review of the CPAN Recent list shows that it really is worthwhile panning for gold there. In addition to routine maintenance releases of popular modules, you will repeatedly find good ideas for more programming efficiency or entertaining information from the world of a lively Perl community glistening on the bottom of your pan.
"Zarathustra seeks creative collaborators; Zarathustra seeks fellow harvesters and celebrators: What has he to do with herds and herdsmen and corpses!"
Infos
- Recent CPAN module versions: http://search.cpan.org/recent
- Speech::Google::TTS: http://search.cpan.org/~nielsd/Speech-Google-TTS-074/
- Listings for this article: ftp://www.linux-magazin.com/pub/listings/magazine/160
- GraphViz::Makefile: http://search.cpan.org/~srezic/GraphViz-Makefile-1.17
- Makefile tutorial: http://mrbook.org/tutorials/make
- Module::ScanDeps: http://search.cpan.org/~rschupp/Module-ScanDeps-1.12/
- Term::Menus: http://search.cpan.org/~reedfish/Term-Menus-2.54/
« Previous 1 2
Buy this article as PDF
(incl. VAT)