home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _c02a374ea3dfb49fe6a8e62efe6c6de5 < prev    next >
Text File  |  2000-03-22  |  25KB  |  462 lines

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