As of version 5.005, ActivePerl supports the MakeMaker utility. This allows
you to install modules from CPAN, but requires you to
have a make utility, such as nmake or dmake. Modules are generally distributed
in gzipped tar files, such as Data-Dumper-2.08.tar.gz.

However, ActivePerl includes the Perl Package Manager (PPM),
a utility that allows you to install modules, including modules that contain
binary extensions. You should consider using PPM to install a module, as this
greatly simplifies the management of modules.

Nevertheless, there are times when it is necessary to build a module from
source. Typically, an installation session goes something like this:

Extract the module. This creates a directory based on the name of the
archive.

gzip -d -c Data-Dumper-2.08.tar.gz | tar xvf -

Change directory to the module's directory.

cd Data-Dumper-2.08

Consult the README file.

more < README

Run the Makefile.PL script. This uses the MakeMaker module to
build a makefile you can build the extension with.

perl Makefile.PL

Run your make utility. This prepares the module for installation, and
compiles any extension if one is present.

DBI, a Database Interface Module for Perl provides
a consistent interface for database application development. DBI
supports ODBC drivers as well as the native APIs of
certain databases, including Oracle. The DBI home
page is located at:

If you choose to use a database API that depends on ODBC,
you must have an ODBC driver for the DBMS
you're using. You will need to configure a data source for that driver on each
machine that needs to access the database. For more information on ODBC
and how to configure a data source, check the ODBC
Control Panel help.

Some DBMSes, such as Microsoft Access and Microsoft SQL
Server, can be controlled through OLE Automation (see the
next question). See the product documentation for details.

You can use the Win32::OLE module to create an instance of a MAPI
session and send a message. In order for this to work, you must have messaging
configured correctly on your machine. If you are using Microsoft Exchange,
chances are this will work fine.

If you need to send Internet mail, you should use Net::SMTP. For more
information on Net::SMTP, see How
do I send email from ActivePerl?. Here is an example script that sends mail
using MAPI:

As of the Perl Resource Kit for Win32, the Tk library has been successfully
ported to ActivePerl. Tk version 8xx and above also now has the look and feel of
Windows programs, and not the old UNIX look of previous
versions.

You can also use the Win32::GUI module which also allows for GUI's to be
made/manipulated using Perl. This module uses the standard Windows widgets to
give the look and feel of Windows programs.

The last value, $icon_buttons, is the sum of two values, the value for the
icon and the value for the buttons. For example, if you need a message box with
a question mark and the 'Ok' and 'Cancel' buttons the value you want is 32
(question mark) + 1 (Ok, Cancel) = 39. The values are listed here:

Oraperl is available as an emulation layer on top of DBD::Oracle. Oraperl is
included with the DBD::Oracle distribution. Because the DBI interface is
evolving, the Oraperl emulation layer is recommended because its API is fairly stable.
Patches are available for DBD::Oracle that allow it to build on Windows. More
information is available at:

CPAN is the Comprehensive Perl Archive Network, a collection of pretty much
every file you could ever want for Perl programming. The original archive is in
Finland, but it is mirrored on FTP servers throughout the
world.

You can connect to your closest CPAN mirror using the CPAN
redirector at http://www.perl.com. The
following URL:

However, many if not most major Windows applications now support OLE
Automation. You can use the OLE Automation support of
Microsoft Office applications to read and write their file formats, for example.
See the documentation on your application for information on its support for OLE
Automation. See Is there a way to
use OLE Automation servers from my Perl script? for more information.

As a special case, many database files, like Microsoft Access, FoxPro, dBase
or Paradox files, can be accessed using ODBC (Open
DataBase Connectivity). See How do I
access databases from my Perl script? for details on how to use ODBC with
ActivePerl.

This FAQ was originally assembled and maintained by Evangelo Prodromou. It
has been revised and updated by Brian Jepson of O'Reilly & Associates, David
Grove and David Dmytryshyn of ActiveState, Henning Michael Møller-Nielsen of
RTO, Kevin Meltzer and David Sparks of ActiveState.

This FAQ is in the public domain. If you use it,
however, please ensure that you give credit to the original authors.