home *** CD-ROM | disk | FTP | other *** search
/ Netrunner 2004 October / NETRUNNER0410.ISO / regular / ActivePerl-5.8.4.810-MSWin32-x86.msi / _6ce832e3555a5705205380f4896493cb < prev    next >
Text File  |  2004-06-01  |  25KB  |  522 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3.  
  4. <head>
  5. <title>ActivePerl FAQ - Modules and sample scripts</title>
  6. <link rel="STYLESHEET" href="../../Active.css" type="text/css" media="screen">
  7. </head>
  8.  
  9. <body>
  10.  
  11. <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#EAE2BB">
  12. <tr> 
  13. <td width="57"><a target=_blank href="http://www.ActiveState.com/ActivePerl/">
  14. <img src="../../images/activeperl_logo.gif" width="57" height="48" border="0" alt="ActivePerl"></a></td>
  15. <td><div align="center" class="heading">ActivePerl User Guide</div></td>
  16. <td width="112"><a target=_blank  href="http://www.ActiveState.com">
  17. <img src="../../images/AS_logo.gif" width="112" height="48" border="0"  alt="ActiveState" /></a></td>
  18. </tr>
  19. <tr>
  20. <td class="lineColour" colspan="3"></td>
  21. </tr>
  22. </table>
  23.  
  24. <h1>Modules and sample scripts</h1>
  25.  
  26. <ul>
  27.   <li><a class="doc" href="#NAME">NAME</a></li>
  28.   <li><a class="doc" href="#DESCRIPTION">DESCRIPTION</a>
  29.     <ul>
  30.       <li><a class="doc" href="#How_can_I_use_modules_from_CPAN_">How can I use modules from
  31.         CPAN?</a></li>
  32.       <li><a class="doc" href="#Where_do_I_get_a_Win32_make">Where do I get make for Win32?</a></li>
  33.       <li><a class="doc" href="#How_do_I_access_databases_from_m">How do I access databases
  34.         from my Perl script?</a></li>
  35.       <li><a class="doc" href="#Is_there_a_way_to_use_OLE_Automa">Is there a way to use OLE
  36.         Automation servers from my Perl script?</a></li>
  37.       <li><a class="doc" href="#Is_there_a_way_to_access_Data_Ac">Is there a way to access
  38.         Data Access Objects (DAO) from my Perl</a></li>
  39.       <li><a class="doc" href="#Can_I_send_Internet_mail_from_Pe">Can I send Internet mail
  40.         from ActivePerl?</a></li>
  41.       <li><a class="doc" href="#Is_there_a_way_to_access_MAPI_fr">Is there a way to access
  42.         MAPI from my Perl script?</a></li>
  43.       <li><a class="doc" href="#Is_there_a_DBM_implementation_av">Is there a DBM
  44.         implementation available for ActivePerl?</a></li>
  45.       <li><a class="doc" href="#Is_there_a_way_to_do_GUI_program">Is there a way to do GUI
  46.         programming with ActivePerl?</a></li>
  47.       <li><a class="doc" href="#Is_there_a_port_of_Oraperl_for_W">Is there a port of Oraperl
  48.         for Win32?</a></li>
  49.       <li><a class="doc" href="#What_modules_come_with_the_Perl_">What modules come with the
  50.         ActivePerl distribution?</a></li>
  51.       <li><a class="doc" href="#Where_can_I_find_other_modules_f">Where can I find other
  52.         modules for ActivePerl?</a></li>
  53.       <li><a class="doc" href="#Is_there_a_GD_module_available_f">Is there a GD module
  54.         available for ActivePerl?</a></li>
  55.       <li><a class="doc" href="#What_is_CPAN_and_how_do_I_use_it">What is CPAN and how do I
  56.         use it?</a></li>
  57.       <li><a class="doc" href="#Is_there_a_library_to_read_or_wr">Is there a library to read
  58.         or write Microsoft Office or other application files?</a></li>
  59.     </ul>
  60.   </li>
  61.   <li><a class="doc" href="#AUTHOR_AND_COPYRIGHT">AUTHOR AND COPYRIGHT</a></li>
  62. </ul>
  63.  
  64. <h2><a name="NAME">NAME</a></h2>
  65. <p>ActivePerl-faq9 - Modules and sample scripts</p>
  66.  
  67. <h2><a name="DESCRIPTION">DESCRIPTION</a></h2>
  68. <p>General questions about using modules and scripts with ActivePerl</p>
  69.  
  70. <h2><a name="How_can_I_use_modules_from_CPAN_">How can I use modules from CPAN?</a></h2>
  71. <p>As of version 5.005, ActivePerl supports the MakeMaker utility. This allows
  72. you to install modules from <font size="-1">CPAN,</font> but requires you to
  73. have a make utility, such as nmake or dmake. Modules are generally distributed
  74. in gzipped tar files, such as <em>Data-Dumper-2.08.tar.gz</em>.</p>
  75. <p>However, ActivePerl includes the Perl Package Manager <font size="-1">(</font>PPM<font size="-1">),</font>
  76. a utility that allows you to install modules, including modules that contain
  77. binary extensions. You should consider using PPM to install a module, as this
  78. greatly simplifies the management of modules.</p>
  79. <p>Nevertheless, there are times when it is necessary to build a module from
  80. source. Typically, an installation session goes something like this:</p>
  81. <ol>
  82.   <li><a name="item_"></a>
  83.     <p>Extract the module. This creates a directory based on the name of the
  84.     archive.</p>
  85.     <pre>
  86.     gzip -d -c Data-Dumper-2.08.tar.gz | tar xvf -
  87. </pre>
  88.   </li>
  89.   <li>
  90.     <p>Change directory to the module's directory.</p>
  91.     <pre>
  92.     cd Data-Dumper-2.08
  93. </pre>
  94.   </li>
  95.   <li>
  96.     <p>Consult the <font size="-1">README</font> file.</p>
  97.     <pre>
  98.     more < README
  99. </pre>
  100.   </li>
  101.   <li>
  102.     <p>Run the <em>Makefile.PL</em> script. This uses the MakeMaker module to
  103.     build a makefile you can build the extension with.</p>
  104.     <pre>
  105.     perl Makefile.PL
  106. </pre>
  107.   </li>
  108.   <li>
  109.     <p>Run your make utility. This prepares the module for installation, and
  110.     compiles any extension if one is present.</p>
  111.     <pre>
  112.     nmake
  113. </pre>
  114.   </li>
  115.   <li>
  116.     <p>If this module has tests, run them.</p>
  117.     <pre>
  118.     nmake test
  119. </pre>
  120.   </li>
  121.   <li>
  122.     <p>If the tests succeeded, install the module.</p>
  123.     <pre>
  124.     nmake install
  125. </pre>
  126.   </li>
  127. </ol>
  128. <p>See <a class="doc" href="ActivePerl-Winfaq4.html#Where_can_I_find_Win32_ports_of_">Where
  129. can I find Win32 ports of UNIX tools?</a> for information on the availability of
  130. tools like gzip and tar.</p>
  131.  
  132. <h2><a name="Where_do_I_get_a_Win32_make">Where do I get make for Win32?</a></h2>
  133. <p>Nmake is a 'make' like program for Win32 systems by Microsoft. It is
  134.     available from <a class="doc" href="ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe">ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe</a></p>
  135.  
  136. <h2><a name="How_do_I_access_databases_from_m">How do I access databases from my
  137. Perl script?</a></h2>
  138. <dl>
  139.   <dt><h3><a name="item_DBI">DBI</a></h3></dt>
  140.   <dd>
  141.     <p><font size="-1">DBI,</font> a Database Interface Module for Perl provides
  142.     a consistent interface for database application development. <font size="-1">DBI</font>
  143.     supports <font size="-1">ODBC</font> drivers as well as the native APIs of
  144.     certain databases, including Oracle. The <font size="-1">DBI</font> home
  145.     page is located at:</p>
  146.     <pre>
  147.     <a class="doc" href="http://dbi.perl.org/">http://dbi.perl.org/</a>
  148. </pre>
  149.   </dd>
  150.   <dt><h3><a name="item_ADO">ADO</a></h3></dt>
  151.   <dd>
  152.     <p>The ActiveX Data Objects <font size="-1">(ADO)</font> <font size="-1">API</font>
  153.     can be used with the Win32::OLE module. You can use <font size="-1">ADO</font>
  154.     to access any <font size="-1">ODBC</font> data source. The
  155.     Perl-Win32-Database <font size="-1">FAQ</font> includes some information on <font size="-1">ADO:</font></p>
  156.     <pre>
  157.     <a class="doc" href="http://www.fastnetltd.ndirect.co.uk/Perl/perl-win32-database.html">http://www.fastnetltd.ndirect.co.uk/Perl/perl-win32-database.html</a>
  158. </pre>
  159.     <p>The <font size="-1">ADO</font> home page is located at:</p>
  160.     <pre>
  161.     <a class="doc" href="http://www.microsoft.com/data/ado/">http://www.microsoft.com/data/ado/</a>
  162. </pre>
  163.   </dd>
  164.   <dt><h3><a name="item_Win32">Win32::ODBC</a></h3></dt>
  165.   <dd>
  166.     <p>There are a couple of extensions that have been developed to access
  167.     databases from ActivePerl. Win32::ODBC is widely popular, and is available
  168.     on <font size="-1">CPAN</font> and at this <font size="-1">URL:</font></p>
  169.     <pre>
  170.     <a class="doc" href="http://www.roth.net/perl/odbc/">http://www.roth.net/perl/odbc/</a>
  171. </pre>
  172.   </dd>
  173.   <dt><h3><a name="item_Sybase">Sybase</a></h3></dt>
  174.   <dd>
  175.     <p>The Sybperl module allows you to connect to Sybase <font size="-1">SQL</font>
  176.     Server (and possibly Microsoft <font size="-1">SQL</font> Server). The
  177.     Sybperl home page, which includes links to binary releases of Sybperl, is
  178.     located at:</p>
  179.     <pre>
  180.     <a class="doc" href="http://www.mbay.net/~mpeppler/">http://www.mbay.net/~mpeppler/</a>
  181. </pre>
  182.   </dd>
  183. </dl>
  184. <p>If you choose to use a database <font size="-1">API</font> that depends on <font size="-1">ODBC,</font>
  185. you must have an <font size="-1">ODBC</font> driver for the <font size="-1">DBMS</font>
  186. you're using. You will need to configure a data source for that driver on each
  187. machine that needs to access the database. For more information on <font size="-1">ODBC</font>
  188. and how to configure a data source, check the <font size="-1">ODBC</font>
  189. Control Panel help.</p>
  190. <p>Some DBMSes, such as Microsoft Access and Microsoft <font size="-1">SQL</font>
  191. Server, can be controlled through <font size="-1">OLE</font> Automation (see the
  192. next question). See the product documentation for details.</p>
  193.  
  194. <h2><a name="Is_there_a_way_to_use_OLE_Automa">Is there a way to use OLE
  195. Automation servers from my Perl script?</a></h2>
  196. <p>Yes. See the documentation for the Win32::OLE module, which is included with
  197. Perl. You can use Win32::OLE to control a wide range of Win32 applications and
  198. APIs, including <font size="-1">ADO.</font></p>
  199. <p>After reading the documentation, you can read the <a class="doc" href="ActivePerl-Winfaq12.html">FAQ
  200. on using OLE</a>.</p>
  201.  
  202. <h2><a name="Is_there_a_way_to_access_Data_Ac">Is there a way to access Data
  203. Access Objects (DAO) from my Perl script?</a></h2>
  204. <p>You should use Win32::OLE to access this <font size="-1">API.</font> See
  205. question <a class="doc" href="#Is_there_a_way_to_use_OLE_Automa">Is there a way to use OLE
  206. Automation servers from my Perl script?</a> and consult the <font size="-1">DAO</font>
  207. documentation.</p>
  208.  
  209. <h2><a name="Can_I_send_Internet_mail_from_Pe">Can I send Internet mail from
  210. ActivePerl?</a></h2>
  211. <p>If you need to send Internet mail, you should use Net::SMTP, Mail::Sender, or
  212. Mail::Sendmail. For more information on these modules, see <a class="doc" href="ActivePerl-Winfaq4.html#How_do_I_send_email_from_Perl_fo">How
  213. do I send email from ActivePerl?</a>.</p>
  214.  
  215. <h2><a name="Is_there_a_way_to_access_MAPI_fr">Is there a way to access MAPI
  216. from my Perl script?</a></h2>
  217. <p>You can use the Win32::OLE module to create an instance of a <font size="-1">MAPI</font>
  218. session and send a message. In order for this to work, you must have messaging
  219. configured correctly on your machine. If you are using Microsoft Exchange,
  220. chances are this will work fine.</p>
  221. <p>If you need to send Internet mail, you should use Net::SMTP. For more
  222. information on Net::SMTP, see <a class="doc" href="ActivePerl-Winfaq4.html#How_do_I_send_email_from_Perl_fo">How
  223. do I send email from ActivePerl?</a>. Here is an example script that sends mail
  224. using <font size="-1">MAPI:</font></p>
  225. <pre>
  226.     # Sender's Name and Password
  227.     #
  228.     my $sender = "YOUR NAME HERE";
  229.     my $passwd = "YOUR PASSWORD HERE";
  230.  
  231.     # Create a new MAPI Session
  232.     #
  233.     use Win32::OLE;
  234.     $session = Win32::OLE->new("MAPI.Session")
  235.         or die "Could not create a new MAPI Session: $!";
  236.  
  237.     # Attempt to log on.
  238.     #
  239.     my $err = $session->Logon($sender, $passwd);
  240.     if ($err) {
  241.         die "Logon failed: $!";
  242.     }
  243.  
  244.     # Add a new message to the Outbox.
  245.     #
  246.     $msg = $session->Outbox->Messages->Add();
  247.  
  248.     # Add the recipient.
  249.     #
  250.     $rcpt = $msg->Recipients->Add();
  251.     $rcpt->{Name} = "RECIPIENT NAME HERE";
  252.     $rcpt->Resolve();
  253.  
  254.     # Create a subject and a body.
  255.     #
  256.     $msg->{Subject} = "Test Message";
  257.     $msg->{Text} = <<EOF;
  258.     This is a sample test message.
  259.  
  260.     Cheers,
  261.  
  262.     Mr. Email
  263.  
  264.     EOF
  265.  
  266.     # Send the message and log off.
  267.     #
  268.     $msg->Update();
  269.     $msg->Send(0, 0, 0);
  270.     $session->Logoff();
  271. </pre>
  272.  
  273. <h2><a name="Is_there_a_DBM_implementation_av">Is there a DBM implementation
  274. available for ActivePerl?</a></h2>
  275. <p>Yes, there is. SDBM_File is a free clone of <font size="-1">DBM,</font> and
  276. is implemented and distributed with the ActivePerl distribution. You can use it
  277. as follows:</p>
  278. <pre>
  279.     use SDBM_File;
  280.     use Fcntl;
  281.  
  282.     tie( %myhash, "SDBM_File", 'myfile', O_RDWR | O_CREAT | O_BINARY, 0666 )
  283.         or die( "Can't tie: $!" );
  284.  
  285.     $myhash{"bibim"} = "bap";
  286.  
  287.     untie( %myhash );
  288. </pre>
  289. <p>After the <font size="-1">DBM</font> file is tied, you can use it just like
  290. any other hash.</p>
  291.  
  292. <h2><a name="Is_there_a_way_to_do_GUI_program">Is there a way to do GUI
  293. programming with ActivePerl?</a></h2>
  294. <p>As of the Perl Resource Kit for Win32, the Tk library has been successfully
  295. ported to ActivePerl. Tk version 8xx and above also now has the look and feel of
  296. Windows programs, and not the old <font size="-1">UNIX</font> look of previous
  297. versions.</p>
  298. <p>You can also use the Win32::GUI module which also allows for GUI's to be
  299. made/manipulated using Perl. This module uses the standard Windows widgets to
  300. give the look and feel of Windows programs.</p>
  301. <p>For Tk information, go to <a class="doc" href="http://w4.lns.cornell.edu/~pvhp/ptk/ptkTOC.html">http://w4.lns.cornell.edu/~pvhp/ptk/ptkTOC.html</a></p>
  302. <p>For Win32::GUI, go to <a class="doc" href="http://dada.perl.it">http://dada.perl.it</a></p>
  303. <p><code>Win32::MsgBox</code> allows for a fast and easy way to display a
  304. Windows message box, for example:</p>
  305. <blockquote>
  306.   <p><code>use Win32;<br>
  307.   <br>
  308.   MsgBox("Test", "This is a test", 48);<br>
  309.   # display a message box with an exclamation mark and an 'Ok' button<br>
  310.   <br>
  311.   sub MsgBox {<br>
  312.       my ($caption, $message, $icon_buttons) = @_;<br>
  313.       my @return = qw/- Ok Cancel Abort Retry Ignore Yes
  314.   No/;<br>
  315.       my $result = Win32::MsgBox($message, $icon_buttons,
  316.   $caption);<br>
  317.       return $return[$result];<br>
  318.   }</code></p>
  319. </blockquote>
  320. <p>The last value, $icon_buttons, is the sum of two values, the value for the
  321. icon and the value for the buttons. For example, if you need a message box with
  322. a question mark and the 'Ok' and 'Cancel' buttons the value you want is 32
  323. (question mark) + 1 (Ok, Cancel) = 39. The values are listed here:</p>
  324. <blockquote>
  325.   <p><code>Icons:<br>
  326.      0 - no icon<br>
  327.     16 - Hand<br>
  328.     32 - Question<br>
  329.     48 - Exclamation<br>
  330.     64 - Asterisk<br>
  331.   <br>
  332.   Buttons:<br>
  333.      0 - Ok<br>
  334.      1 - Ok, Cancel<br>
  335.      2 - Abort, Retry, Ignore<br>
  336.      3 - Yes, No, Cancel<br>
  337.      4 - Yes, No<br>
  338.      5 - Retry, Cancel</code></p>
  339. </blockquote>
  340.  
  341. <h2><a name="Is_there_a_port_of_Oraperl_for_W">Is there a port of Oraperl for
  342. Win32?</a></h2>
  343. <p>Oraperl is available as an emulation layer on top of DBD::Oracle. Oraperl is
  344. included with the DBD::Oracle distribution. Because the DBI interface is
  345. evolving, the Oraperl emulation layer is recommended because its API is fairly stable.
  346. Patches are available for DBD::Oracle that allow it to build on Windows. More
  347. information is available at:</p>
  348. <pre>
  349.    <a class="doc" href="http://www.symbolstone.org/technology/perl/DBI/index.html">http://www.symbolstone.org/technology/perl/DBI/index.html</a>
  350. </pre>
  351. <!-- <p>Binary distributions of DBI and DBD::Oracle are available from:</p>
  352. <pre>
  353.     <a class="doc" href="http://www.access.digex.net/~jurlwin/">http://www.access.digex.net/~jurlwin/</a>
  354. </pre>-->
  355.  
  356. <h2><a name="What_modules_come_with_the_Perl_">What modules come with the
  357. ActivePerl distribution?</a></h2>
  358. <p>Along with the standard library files, there are several Win32-specific
  359. modules that are distributed with ActivePerl. These include:</p>
  360. <ul>
  361.   <li><a name="item_Win32">Win32::Clipboard: Perl module for Windows
  362.     clipboard interaction</a></li>
  363.   <li><a name="item_Win32">Win32::Console: Perl module for Windows
  364.     console interaction</a></li>
  365.   <li><a name="item_Win32">Win32::ChangeNotification: Create and use
  366.     ChangeNotification objects</a></li>
  367.   <li><a name="item_Win32">Win32::Event: Use Win32 event objects from
  368.     Perl</a></li>
  369.   <li><a name="item_Win32">Win32::EventLog: Read from and write to the
  370.     Windows NT event log</a></li>
  371.   <li><a name="item_Win32">Win32::File: Manage file attributes (read
  372.     only, system, hidden...)</a></li>
  373.   <li><a name="item_Win32">Win32::FileSecurity: manage ACLs in Perl</a></li>
  374.   <li><a name="item_Win32">Win32::Internet: Perl module for Internet
  375.     extensions</a></li>
  376.   <li><a name="item_Win32">Win32::IPC: Wait for objects (processes,
  377.     mutexes, semaphores)</a></li>
  378.   <li><a name="item_Win32">Win32::Mutex: Create and use mutexes</a></li>
  379.   <li><a name="item_Win32">Win32::NetAdmin: Administer users and groups</a></li>
  380.   <li><a name="item_Win32">Win32::NetResource: Manage resources
  381.     (servers, file shares, printers)</a></li>
  382.   <li><a name="item_Win32">Win32::ODBC: work with ODBC data sources</a></li>
  383.   <li><a name="item_Win32">Win32::OLE: Use OLE automation from Perl</a></li>
  384.   <li><a name="item_Win32">Win32::Pipe: Perl module for pipes</a></li>
  385.   <li><a name="item_Win32">Win32::Process: Start and stop Win32
  386.     processes</a></li>
  387.   <li><a name="item_Win32">Win32::Registry: Read and manage the Win32
  388.     Registry</a></li>
  389.   <li><a name="item_Win32">Win32::Semaphore: Create and use semaphores</a></li>
  390.   <li><a name="item_Win32">Win32::Service: Manage Windows NT services</a></li>
  391.   <li><a name="item_Win32">Win32::Shortcut: Perl module for shell link
  392.     interface</a></li>
  393.   <li><a name="item_Win32">Win32::WinError: For retrieving Win32-defined
  394.     errors</a></li>
  395. </ul>
  396. <p>These are documented on the Win32mod documentation page. There are also a
  397. number of subs built into the Win32 package, namely:</p>
  398. <ul>
  399.   <li><a name="item_AbortSystemShutdown">AbortSystemShutdown: I mean,
  400.     don't shut down this computer</a></li>
  401.   <li><a name="item_DomainName">DomainName: Name of the domain this
  402.     machine is in</a></li>
  403.   <li><a name="item_ExpandEnvironmentStrings">ExpandEnvironmentStrings:
  404.     Take a string like %HOMEPATH% and expand it to the actual value</a></li>
  405.   <li><a name="item_FormatMessage">FormatMessage: Format a Win32 error
  406.     code into a error message</a></li>
  407.   <li><a name="item_FsType">FsType: Get the file system type of a drive</a></li>
  408.   <li><a name="item_GetCwd">GetCwd: Get current working directory</a></li>
  409.   <li><a name="item_GetLastError">GetLastError: Retrieve the last Win32
  410.     error code.</a></li>
  411.   <li><a name="item_GetNextAvailDrive">GetNextAvailDrive: Returns the
  412.     next available drive letter</a></li>
  413.   <li><a name="item_GetOSVersion">GetOSVersion: Get Win32 operating
  414.     system version</a></li>
  415.   <li><a name="item_GetShortPathName">GetShortPathName: Returns the 8.3
  416.     name of a filename</a></li>
  417.   <li><a name="item_GetTickCount">GetTickCount: Time since Windows
  418.     started, in milliseconds (for timing)</a></li>
  419.   <li><a name="item_InitiateSystemShutdown">InitiateSystemShutdown: Shut
  420.     down this computer</a></li>
  421.   <li><a name="item_IsWinNT">IsWinNT: Is this Windows NT?</a></li>
  422.   <li><a name="item_IsWin95">IsWin95: Or, is it Windows 95?</a></li>
  423.   <li><a name="item_LoginName">LoginName: Name of logged-in user</a></li>
  424.   <li><a name="item_LookupAccountName">LookupAccountName: Given a user
  425.     name, get domain, SID, SID type</a></li>
  426.   <li><a name="item_LookupAccountSID">LookupAccountSID: Given a SID, get
  427.     domain, user name, SID type</a></li>
  428.   <li><a name="item_NodeName">NodeName: Name of this machine</a></li>
  429.   <li><a name="item_SetCwd">SetCwd: Set current working directory</a></li>
  430.   <li><a name="item_Sleep">Sleep: Sleep for a given number of
  431.     milliseconds</a></li>
  432.   <li><a name="item_Spawn">Spawn: Spawn a Win32 process</a></li>
  433.   <li><a name="item_ExpandEnvironmentStrings">ExpandEnvironmentStrings:
  434.     Take a string like %HOMEPATH% and expand it to the actual value</a></li>
  435. </ul>
  436. <p>No longer included in the Win32 module:</p>
  437. <ul>
  438.   <li><a name="item_PerlVersion">PerlVersion: Use $] instead</a></li>
  439.   <li><a name="item_GetArchName">GetArchName: Use $ENV{PROCESSOR_ARCHITECTURE}</a></li>
  440.   <li><a name="item_GetChipName">GetChipName: Use $ENV{PROCESSOR_LEVEL}
  441.     . $ENV{PROCESSOR_ARCHITECTURE}</a></li>
  442. </ul>
  443.  
  444. <h2><a name="Where_can_I_find_other_modules_f">Where can I find other modules
  445. for ActivePerl?</a></h2>
  446. <p>Modules for ActivePerl are available on <font size="-1">CPAN</font>
  447. (Comprehensive Perl Archive Network), a Perl archive that's mirrored around the
  448. world. To find your nearest mirror, check here:</p>
  449. <pre>
  450.     <a class="doc" href="http://www.perl.com/CPAN-local/modules/by-module/Win32/">http://www.perl.com/perl/CPAN/modules/by-module/Win32/</a>
  451. </pre>
  452. <p>(Note that this will send you to your nearest mirror automagically. Cool,
  453. huh?)</p>
  454.  
  455. <h2><a name="Is_there_a_GD_module_available_f">Is there a GD module available
  456. for ActivePerl?</a></h2>
  457. <p>GD now works with Windows, and can be installed using <font size="-1">PPM</font>
  458. (the Perl Package Manager). This graphics library allows the creation and some
  459. manipulation of industry standard <font size="-1">PNG</font> format images.</p>
  460.  
  461. <h2><a name="What_is_CPAN_and_how_do_I_use_it">What is CPAN and how do I use it?</a></h2>
  462. <p>CPAN is the Comprehensive Perl Archive Network, a collection of pretty much
  463. every file you could ever want for Perl programming. The original archive is in
  464. Finland, but it is mirrored on <font size="-1">FTP</font> servers throughout the
  465. world.</p>
  466. <p>You can connect to your closest <font size="-1">CPAN</font> mirror using the <font size="-1">CPAN</font>
  467. redirector at <a class="doc" href="http://www.perl.com.">http://www.perl.com.</a> The
  468. following <font size="-1">URL:</font></p>
  469. <pre>
  470.     <a class="doc" href="http://www.perl.com/CPAN/">http://www.perl.com/CPAN/</a>
  471. </pre>
  472. <p>will redirect your browser to the nearest <font size="-1">CPAN</font> mirror
  473. (one on your continent and maybe only a few hops away). This <font size="-1">URL</font></p>
  474. <pre>
  475.     <a class="doc" href="http://www.perl.com/CPAN">http://www.perl.com/CPAN</a>
  476. </pre>
  477. <p>lets you pick a <font size="-1">CPAN</font> mirror site yourself, as well as
  478. giving a little more information.</p>
  479. <p><font size="-1">CPAN</font> is good for finding ActivePerl distributions as
  480. well as modules and scripts. However, read</p>
  481. <pre>
  482.     <a class="doc" href="#How_can_I_use_modules_from_CPAN_">How can I use modules from CPAN?</a>
  483. </pre>
  484. <p>for more information.
  485.  
  486. <h2><a name="Is_there_a_library_to_read_or_wr">Is there a library to read or
  487. write Microsoft Office or other application files?</a></h2>
  488. <p>In general, there aren't any library modules to read or write application
  489. files, like Microsoft Word, Microsoft Excel, Microsoft Access, WordPerfect,
  490. Lotus 1-2-3, etc.</p>
  491. <p>However, many if not most major Windows applications now support <font size="-1">OLE</font>
  492. Automation. You can use the <font size="-1">OLE</font> Automation support of
  493. Microsoft Office applications to read and write their file formats, for example.
  494. See the documentation on your application for information on its support for <font size="-1">OLE</font>
  495. Automation. See <a class="doc" href="#Is_there_a_way_to_use_OLE_Automa">Is there a way to
  496. use OLE Automation servers from my Perl script?</a> for more information.</p>
  497. <p>As a special case, many database files, like Microsoft Access, FoxPro, dBase
  498. or Paradox files, can be accessed using <font size="-1">ODBC</font> (Open
  499. DataBase Connectivity). See <a class="doc" href="#How_do_I_access_databases_from_m">How do I
  500. access databases from my Perl script?</a> for details on how to use ODBC with
  501. ActivePerl.</p>
  502.  
  503. <h2><a name="AUTHOR_AND_COPYRIGHT">AUTHOR AND COPYRIGHT</a></h2>
  504. <p>This FAQ was originally assembled and maintained by Evangelo Prodromou. It
  505. has been revised and updated by Brian Jepson of O'Reilly & Associates, David
  506. Grove and David Dmytryshyn of ActiveState, Henning Michael M°ller-Nielsen of
  507. RTO, Kevin Meltzer and David Sparks of ActiveState.</p>
  508. <p>This <font size="-1">FAQ</font> is in the public domain. If you use it,
  509. however, please ensure that you give credit to the original authors.</p>
  510.  
  511. <table border="0" cellpadding="0" cellspacing="0" width="100%">
  512.   <tr>
  513.     <td class="block" valign="MIDDLE" width="100%" bgcolor="#cccccc"><h3>
  514.       <p class="block"> ActivePerl FAQ - Modules and sample scripts</p>
  515.       </h3></td>
  516.   </tr>
  517. </table>
  518.  
  519. </body>
  520.  
  521. </html>
  522.