Windows IT Pro is the leading independent community for IT professionals deploying Microsoft Windows server and client applications and technologies.
  
  
  Advanced Search 


November 1998

Perl COM Objects


RSS
Subscribe to Windows IT Pro | See More OLE DB Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!

Download the Code Here
Download the Code Here
Download the Code Here

How to Use PerlCtrl

In my September column, "Inside the New Perl Resource Kit," I reviewed O'Reilly & Associates' Perl Resource Kit­Win32 Edition and introduced you to PerlCOM and PerlCtrl, the two new component object model (COM)-based Perl technologies ActiveState Tool developed. I demonstrated how you can use PerlCOM to create instances of Perl in any programming environment that supports COM. This month, I'll introduce you to PerlCtrl.

With PerlCtrl, you can create COM automation servers in Perl. A COM automation server, or control, is a self-contained, reusable .dll file that exposes methods and properties that any COM controller can instantiate and use. The control can be a simple Perl script that provides a useful function you want to reuse in another development environment or a complete Perl module that provides many useful functions. PerlCtrl lets you define all aspects of the object's implementation, including the ProgID (the name you use to create the object), the exposed methods and properties, and whether users can change exposed properties.

Creating a control with PerlCtrl involves six steps. I'll walk you through each step and show you how to build a control that lets you write events in the Windows NT Application Log. Keep in mind that after you're done, you can use this control from any programming environment that supports COM, such as Visual Basic (VB), Visual Basic for Applications (VBA), Windows Scripting Host (WSH), Active Server Pages (ASP), and Delphi. Because WSH doesn't provide access to the NT event logs by default, you'll test your new control with a WSH VBScript routine.

Step 1: Create a Template
You need to create a template for the control's source code and type library. This step is quick and easy because PerlCtrl.exe provides the -t command-line switch that instructs PerlCtrl to create the template for you. The only task you need to do is redirect the output to a file by typing

C:\Perl\Source\Controls>perlctrl -t >SysLog.pl

Executing PerlCtrl.exe produces a new control template, SysLog.pl, which Listing 1, page 194, shows. In this generic template, you'll find a hash, %TypeLib, enclosed in Perl documentation tags (=POD and =cut). In step 3, you'll use the %TypeLib hash to define the control's name, properties, methods, and other elements. But first you need to write the source code that implements this object's behavior.

Step 2: Write the Code
In this step, you need to add the Perl source code for your control to the template you just created (SysLog.pl in this case). As callout A in Listing 2, page 195, shows, you place the SysLog.pl source code in the template before the =POD delimiter of the %TypeLib hash.

The code begins by defining a new package, SysLog. Because you must define all code PerlCtrl exposes within a Perl package, you need to use Perl's package keyword followed by the package's name (i.e., SysLog). A Perl package is simply a named, modular unit of functionality constructed in a way that you can easily reuse it. For example, the hundreds of reusable Perl modules available on the Comprehensive Perl Archive Network (CPAN) are packages. (For more information about CPAN, go to http://www.perl.com/CPAN.)

After defining the package name, you must define the object's properties and methods. Properties define the state of the object; methods define the object's behavior. For example, consider a user object in which name might be a property and ChangePassword might be a method. Properties describe the current view of the object, and methods make changes or perform actions on the object in some way.

The control in the SysLog.pl source code in Listing 2 contains five scalar variables ($Host, $Source, $Id, $Type, and $Description) and one subroutine (Write) that make up the object's properties and method, respectively. The code initializes several of the scalar variables with a default value. Initialization provides a default value for the property in case the user chooses not to explicitly set the value. The Write subroutine is the object's only method. It performs the action of writing the default or user-defined event in the NT Application Log.

You can create an unlimited number of properties and methods. Also keep in mind that you do not need to expose all properties and methods.

   Previous  [1]  2  Next 


Top Viewed ArticlesView all articles
What You Need to Know About Microsoft's x64 Server Product Plans

What do Longhorn Server, Windows Compute Cluster Server, and Windows Vista have in common? The x64 platform. ...

WinInfo Short Takes: 4th of July Special Edition

An often irreverent look at some of the week's other news, including a shortened work week thanks to the 4th of July, expensive Windows 7 pricing, Bing's modest monthly gains, IE 8 heading to work, Steve Jobs back at Apple, and so much more ...

How can I stop and start services from the command line?

...


Related Articles Inside the New Perl Resource Kit

Task Automation Whitepapers Business Innovation with Data Center Transformation

Batch Job Scheduling and .NET in 2008

Continuous Data Protection and Recovery for Microsoft Exchange

Related Events WinConnections and Microsoft® Exchange Connections

The Easiest Way to Save Time and Money on E-mail and SharePoint Management

Check out our list of Free Email Newsletters!

Task Automation eBooks Spam Fighting and Email Security for the 21st Century

A Guide to Windows Certification and Public Keys

Keeping Your Business Safe from Attack: Patch Management

Related Task Automation Resources Introducing Left-Brain.com, the online IT bookstore
Looking for books, CDs, toolkits, eBooks? Prime your mind at Left-Brain.com

Discover Windows IT Pro eLearning Series!
Clear & detailed technical information and helpful how-to's, all in our trademark no-nonsense format

Test Drive IT Solutions and Get Free Music Downloads
Solve your toughest IT problems with these free downloads and receive 5 free music downloads!


Windows IT Pro Home Register FAQ for Windows WinInfo News
Europe Edition About Us Contact Us/Customer Service Media Kit Affiliates / Licensing  
SQL Server Magazine Office & SharePoint Pro DevProConnections IT Job Hound ITTV
IT Library Technology Resource Directory Connected Home asp.netPRO Windows SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 © 2009 Penton Media, Inc. Terms of Use | Privacy Statement | Reprints and Licensing