Name
new
Synopsis
Win32::OLE->new(progid
, [destructor
])
Creates a new automation object. This method always
creates a new instance of the server, even if a previous instance
of the server is running. If the object cannot be created,
new
returns undef
.
progid
, the program identifier
(ProgID), is a string that uniquely identifies an automation
object. progid
is used to look up the
object’s class ID (CLSID), which is stored in the registry.
The second, optional argument to the new
method describes a way to destroy
the object in case the Perl program dies unexpectedly.
destructor
can be either a string with
the name of the defined OLE destructor method, or a code reference
that will destroy the object. You should use some form of
destructor
to close out all your
objects, for they can be extremely expensive in terms of system
resources. You can explicitly destroy an object using the undef
function. If you don’t explicitly
destroy the object, Perl takes care of it for you when the last
reference to the object goes away.
Here is what new
would
look like with the destructor arguments:
# Quit is the OLE-defined destructor method $x1 = Win32::OLE->new("Excel.Application", 'Quit'); # The object reference is the first argument ($_[0]) passed to new # The code reference will undef it to destroy the object $x2 = Win32::OLE->new("Excel.Application", sub{undef $_[0];})
Notice that we’re supplying Excel.Application as the ProgID. Excel supports several different automation objects, including an Application ...
Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.