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)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Gnome 48 Debuts New Audio Player
To date, the audio player found within the Gnome desktop has been meh at best, but with the upcoming release that all changes.
-
Plasma 6.3 Ready for Public Beta Testing
Plasma 6.3 will ship with KDE Gear 24.12.1 and KDE Frameworks 6.10, along with some new and exciting features.
-
Budgie 10.10 Scheduled for Q1 2025 with a Surprising Desktop Update
If Budgie is your desktop environment of choice, 2025 is going to be a great year for you.
-
Firefox 134 Offers Improvements for Linux Version
Fans of Linux and Firefox rejoice, as there's a new version available that includes some handy updates.
-
Serpent OS Arrives with a New Alpha Release
After months of silence, Ikey Doherty has released a new alpha for his Serpent OS.
-
HashiCorp Cofounder Unveils Ghostty, a Linux Terminal App
Ghostty is a new Linux terminal app that's fast, feature-rich, and offers a platform-native GUI while remaining cross-platform.
-
Fedora Asahi Remix 41 Available for Apple Silicon
If you have an Apple Silicon Mac and you're hoping to install Fedora, you're in luck because the latest release supports the M1 and M2 chips.
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.