Roth Consulting

Bullet Perl script authors share their brains in the Perl Script Repository. Bullet Have a look at what we are discussing in the Windows Perl Blog. Bullet Discuss Windows Perl and other things in the Windows Perl Forum. Bullet

You can read Dave Roth's articles published in the Windows IT Pro magazine (formally known as Windows .NET Magazine) that use Perl to accomplish interesting tasks.

Bullet Check out Dave Roth's Win32 Perl columns in the Windows Scripting Solutions journal. Bullet

Our Administrator's Handbook book is here and not a moment too soon!
Win32 Perl Scripting: Administrator's Handbook

Available at


The 2nd edition of our Win32 Perl Programming: Standard Extensions is available.

Available at

Bullet The definitive word for Win32 Perl is ActiveState Tool Corporation. Bullet Off topic:
Bullet Are you searching for a children's bike trailer?
Bullet Would you like to try growing an avocado plant?
Bullet Easily lose weight by increasing your metabolism.
Bullet What, exactly, is a Calorie?
Bullet Want to know about schooling your child using the Montessori method.

Check out our recommended reading list.


Web Roth Consulting
Totally off topic:
The Politics of BizarroLand
Bullet Our Perl Packages:

For all of those who are using Perl 5.005 there is the Perl Package Manager (the PPM.PL script) utility that comes with ActiveState's version of Perl (aka ActivePerl). This utility will download and install any available packages and extensions.

ActiveState Tool Corp. has a FAQ regarding the Perl Package Manager.

Packages available from Roth Consulting:

These extensions were compiled explicity for the PERL_OBJECT enabled versions of Perl 5.005 such as ActivePerl and the core distirubtion (if it has been compiled with the PERL_OBJECT macro defined).

1) GDBM_File:
Version: 981221
The GDBM_File for Win32 X86
By: (Ported to Win32 by Roth Consulting)
2) Win32::AdminMisc:
Version: 20030714
The Win32::AdminMisc extension for Win32 X86
By: Roth Consulting (
3) Win32::API::Prototype :
Version: 20021217
The Win32::API::Prototype module. Simplifies using Win32::API by accepting a C function prototype and exposing the function by name in the main namespace.
By: Roth Consulting (
4) Win32::Daemon:
Version: 20030617
The Win32::Daemon extension for Win32 X86. Allows Perl to be a Win32 service.
By: Roth Consulting (
5) Win32::EventLog::Message:
Version: 20020322
The Win32::EventLog::Message extension for Win32 X86. Supplies an EventLog message table for Windows NT.
By: Roth Consulting (
6) Win32::Exchange:
Version: 00045
Perl-Win32 Interface for performing tasks related to MS Exchange mailbox and distributon list creation and manipulation
By: Steven Manross <>
7) Win32::Message:
Version: 20011224
The Win32::Message extension for Win32 X86. Manages sending network messages.
By: Roth Consulting (
8) Win32::ODBC BETA:
Version: 19991221
The Win32::ODBC BETA extension for Win32 X86. Interface for ODBC databases.
By: Roth Consulting (
9) Win32::Perms:
Version: 20020605
The Win32::Perms extension for Win32 X86. Manages object permissions for Windows NT.
By: Roth Consulting (
10) Win32::Pipe:
Version: 20030419
The Win32::Pipe extension for Win32 X86. Allows Perl to create Win32 Named Pipes.
By: Roth Consulting (
11) Win32::RasAdmin:
Version: 20020320
The Win32::RasAdmin extension for Win32 X86. Administrative functions for RAS on Windows NT/2000/XP/.Net.
By: Roth Consulting (
12) Win32::Scheduler:
Version: 20000702
The Win32::Scheduler extension for Win32 X86. Manages object MSTask Scheduled tasks.
By: Roth Consulting (
13) Win32::Tie::Ini:
Version: 20020106
The Win32::Tie::Ini extension for Win32 X86. Manages INI files.
By: Roth Consulting (
14) Win32::Volume:
Version: 20020312
The Win32::Volume extension for Win32 X86. Manages audio volume.
By: Roth Consulting (


Using the Perl Package Manager:

Searching for packages

A typical example of it's use. Here we are looking for all Registry extensions that are available:

PPM interactive shell (0.9.4) - type 'help' for available commands.
PPM> search registry
Packages available from

Installing packages

In this case we are installing the Win32::TieRegistry extension:

PPM interactive shell (0.9.4) - type 'help' for available commands.
PPM> install Win32-TieRegistry
Install package 'Win32-TieRegistry?' (y/N): y
Installing C:\perl\5.0\html\lib\site\Win32\TieRegistry.html
Installing C:\perl\5.0\htmlhelp\pkg-TieRegistry.chm
Installing C:\perl\5.0\htmlhelp\pkg-TieRegistry.hhc
Installing C:\perl\5.0\site\lib\Win32\
Writing c:\perl\5.0\site\lib/auto/Win32-TieRegistry/.packlist

Adding package repositories

By default the script will search ActiveState's package repository. You can add other repositories to the list by using the set repository command. In this case we are adding a repository called RothConsulting and provide an URL which contains the list of packages:

PPM interactive shell (0.9.4) - type 'help' for available commands.
PPM> set repository RothConsulting
PPM> set
Commands will be confirmed.
Temporary files will be deleted.
Case-insensitive searches will be performed.
Package installations will continue if a dependency cannot be installed.
Screens will not pause.
Current PPD repository paths:
        ActiveState Package Repository:
Packages will be installed under: c:\perl\5.0
Packages will be built under: c:\temp
More recent versions of PPM use the 'repository' (or 'rep' for short) command (as opposed to 'set'):
PPM - Programmer's Package Manager version 3.1.
Copyright (c) 2001 ActiveState Corp. All Rights Reserved.
ActiveState is a devision of Sophos.

Entering interactive shell. Using Term::ReadLine::Stub as readline library.

Type 'help' to get started.

ppm> rep add "Roth Consulting"
[1] ActiveState PPM2 Repository
[2] ActiveState Package Repository
[3] Roth Consulting