There's something about Comprehensive Perl Archive Network's (CPAN) collection of Windows-specific Perl modules that makes most everyone happy. The Windows crowd likes it because it allows them to do relatively-complex things fairly efficiently and quickly in a Microsoft development environment. And the open-source geeks like it because it allows them to crow about Perl's superior compatibility vis-a-via other operating systems. In short, everyone wins.
That's why, regardless of which side of the fence you're currently on, you have a reason to keep reading. In this document, I've attempted to catalog some Perl modules that can come in handy the next time you're programming in Win32 Perl. (See Table A) If you're a Perl programmer attempting to navigate the Windows world, you should definitely consider adding some of these to your toolkit.
Note: You can install CPAN modules directly from the Internet, by following the instructions provided at
This module provides an interface to Win32 API calls related to the Windows registry. It allows you to read and write registry values, create and delete registry keys, query keys, and load registry "hives" from disk.
Use this module when you need to read or write to the Windows registry.
This module allows you to control Win32 applications through a Perl script using OLE (Object Linking and Embedding). An OLE object reference is associated with the target OLE class, and OLE class methods can then be accessed through Perl.
Use this module when you need to interface with an OLE-compliant application, such as Microsoft Office.
This module provides access to library functions in WININET.DLL. It is particularly useful for managing HTTP and FTP connections in Windows.
Use this module if your Perl application needs to work with Internet connections, URLs and FTP and HTTP sessions under Windows.
This module makes it possible to easily access process information under Windows. It provides functions to retrieve process and sub-process IDs and get detailed process information. Note that it does not allow you to kill existing processes.
Use this module when you need to retrieve or watch the current process table.
This module provides an elegant interface to the Windows clipboard. It allows you to read the current contents of the clipboard, write new data to it (or reset it), or "wait" until clipboard content changes.
Use this module when you need to transfer data between Windows and Perl applications using the clipboard, or to view current clipboard contents.
This module provides functions to interact with the Windows service manager and start or stop Windows services.
Use this module when you need to start or stop a Windows service (for example, while installing an application).
This module provides an API for many different Windows-specific file operations: move files to the Recycle Bin, work with Recent Documents, edit INI files, open and close dialog boxes and use the ShellExecute method to perform default file actions.
Use this module when you need to quickly perform a variety of Windows-specific actions.
This module lets you add support for named pipes to your Win32 Perl build.
Use this module when you need to establish client-server connections between applications and Perl servr daemons on Windows.
This module lets you retrieve comprehensive information on available drives, file systems, disk space usage and free drive letters on Windows.
Use this module when you need to interact with the Windows filesystem: obtain available drive letters, calculate free and used disk space, or view drive properties.
This module provides an API to interact with the Windows event logger. It allows you to register events and applications, link them to specific log levels, and append messages to the log.
Use this module to log errors and system messages using the Windows event tracking subsystem.