MSI - Microsoft Installer API
This collection of modules and scripts lets you create and manipulate MSI databases programmatically using Perl. The main API is provided by the MSI::Installer module; however the other modules provide useful APIs as well.
MSI uses GUIDs to track the install state of components, features and products. If you are distributing products that are interdependent, then it makes sense to use a common GUIDs database for all of your products. The methods for opening, adding and retrieving GUIDs from a database are defined by MSI::Installer.
Sequence tables define the order in which actions are executed during installation of your product. The sequence table used is determined by the type of installation being performed. Tables are automatically created and populated with the recommended installation sequences. There is most likely no need to change the default sequences. You may, however, need to schedule custom actions to execute during the installation of your product.
For more information about sequence tables refer to:
http://msdn.microsoft.com/library/psdk/msi/novr_3mqt.htm
For more information about searching for existing applications, files, registry entries or .ini file entries refer to:
http://msdn.microsoft.com/library/psdk/msi/over_84oj.htm
For more information about the global variables used by the Microsoft Windows Instataller refer to:
http://msdn.microsoft.com/library/default.asp 
For more information about custom actions refer to:
http://msdn.microsoft.com/library/psdk/msi/cact_5t2r.htm
For more information about MSI error codes refer to:
http://msdn.microsoft.com/library/psdk/msi/erro_89f7.htm
For the complete MSI reference from the Microsoft Developer Network Library, refer to:
http://msdn.microsoft.com/library/default.asp 
MSI::Installer MSI::DB MSI::Image MSI::Component MSI::File MSI::Dialog MSI::DialogEditor MSI::Vars
msidump.pl msiwiz.pl
MSI::Installer, Win32::Cabinet, perl
Copyright (c) 2000 ActiveState Software Inc. All rights reserved.