home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2000 May
/
Chip_2000-05_cd1.bin
/
zkuste
/
Perl
/
ActivePerl-5.6.0.613.msi
/
䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥
/
_8364f9635b4ed281e28923f4c8544e41
< prev
next >
Wrap
Text File
|
2000-03-22
|
6KB
|
115 lines
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>PerlIS - Perl for ISAPI</TITLE>
<LINK rev="made" href="mailto:support@ActiveState.com">
<META name="GENERATOR" charset="iso-8859-1" content="Microsoft FrontPage 4.0">
<META name="ProgId" content="FrontPage.Editor.Document">
<LINK rel="STYLESHEET" href="../../Active.css" type="text/css" media="screen">
</HEAD>
<BODY bgcolor="#ffffff">
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
<TR>
<TD class="block" valign="MIDDLE" width="100%" bgcolor="#cccccc"><FONT size="+1"><STRONG>
<P class="block"> ActivePerl FAQ</P>
</STRONG></FONT></TD>
</TR>
</TABLE>
<UL>
<LI><A href="#NAME">NAME</A></LI>
<LI><A href="#DESCRIPTION">DESCRIPTION</A>
<UL>
<LI><A href="#Sources_of_other_information">Sources of other information</A></LI>
<LI><A href="#What_is_ISAPI_">What is ISAPI?</A></LI>
<LI><A href="#What_is_Perl_for_ISAPI_">What is Perl for ISAPI?</A></LI>
<LI><A href="#Where_can_I_get_Perl_for_ISAPI_">Where can I get Perl for ISAPI?</A></LI>
<LI><A href="#Why_should_I_use_Perl_for_ISAPI_">Why should I use Perl for ISAPI rather than
ActivePerl (perl.exe)?</A></LI>
<LI><A href="#Where_s_the_source_code_for_Perl">Where's the source code for Perl for ISAPI?</A></LI>
</UL>
</LI>
<LI><A href="#AUTHOR_AND_COPYRIGHT">AUTHOR AND COPYRIGHT</A></LI>
</UL>
<HR>
<H1><A name="NAME">NAME</A></H1>
<P>PerlIS - Perl for ISAPI</P>
<HR>
<H1><A name="DESCRIPTION">DESCRIPTION</A></H1>
<P>About Perl for ISAPI<FONT size="-1">.</FONT></P>
<HR>
<H2><A name="Sources_of_other_information">Sources of other information</A></H2>
<P>Information on Perl for ISAPI can also be found in <A href="../Windows/ActivePerl-Winfaq6.html#">the
ActivePerl-Winfaq6 manpage</A> and <A href="../Windows/ActivePerl-Winfaq7.html#">the ActivePerl-Winfaq7 manpage</A>.</P>
<HR>
<H2><A name="What_is_ISAPI_">What is ISAPI?</A></H2>
<P>ISAPI (Internet Server Application Programming Interface) is an API for writing extensions to web
servers. It was originally developed by Process Software, and adopted by Microsoft as its standard
server API<FONT size="-1">.</FONT> It complements or replaces the Common Gateway Interface <FONT size="-1">(</FONT>CGI<FONT size="-1">),</FONT>
the standard interprocess protocol for writing extensions to web servers.</P>
<P>ISAPI's main advantage over CGI is that it uses dynamic-link library <FONT size="-1">(DLL)</FONT>
function calls to communicate with extension components, rather than environment variables and
standard <FONT size="-1">I/O,</FONT> as CGI does. There's a lot of overhead when starting new
processes on Win32 platforms, and DLL calls eliminate the need for new processes, thus reducing the
running time.</P>
<P>Although it was originally developed for Microsoft Internet Information Server, many Windows
NT-hosted web servers now support ISAPI<FONT size="-1">.</FONT> See <A href="../Windows/ActivePerl-Winfaq6.html#What_HTTP_servers_support_Perl_f">What
HTTP servers support ActivePerl?</A> for the names of a few. If your server isn't there, check its
documentation.</P>
<HR>
<H2><A name="What_is_Perl_for_ISAPI_">What is Perl for ISAPI?</A></H2>
<P>Perl for ISAPI<FONT size="-1">,</FONT> is an ISAPI extension that runs Perl scripts on Win32
platforms.</P>
<P>Perl for ISAPI is mainly used for creating dynamic content on World Wide Web sites. Writing Perl
scripts that run under PerlIS is not much different than writing scripts for the Common Gateway
Interface <FONT size="-1">(</FONT>CGI<FONT size="-1">).</FONT></P>
<P>Perl for ISAPI doesn't have much general purpose use. For general purpose programming, stick with
the perl interpreter (<EM>perl.exe</EM>).</P>
<P>You may also see Perl for ISAPI referred to as PerlIS. PerlIS is the name of the Perl for ISAPI
DLL<FONT size="-1">.</FONT></P>
<HR>
<H2><A name="Where_can_I_get_Perl_for_ISAPI_">Where can I get Perl for ISAPI?</A></H2>
<P>Perl for ISAPI is distributed as a part of the ActivePerl distribution. You can optionally
install it when installing ActivePerl.</P>
<HR>
<H2><A name="Why_should_I_use_Perl_for_ISAPI_">Why should I use Perl for ISAPI rather than Perl for
Win32 (perl.exe)?</A></H2>
<P>The short answer is: it's faster. The long answer gets kind of technical, but it goes like this:</P>
<P>The main advantage of PerlIS over <EM>perl.exe</EM> is that PerlIS runs as a DLL in the web
server's process space. Because Win32 platforms set up a protected memory space for each process
that is started, there's a lot of overhead in starting a new process or program. Passing scripts to
an interpreter, such as <EM>perl.exe</EM>, requires starting a new process for every script, which
gets expensive in terms of system resources.</P>
<P>DLLs, on the other hand, don't need their own process space; they use the space of the process
that calls them. They don't require nearly as much overhead to start, and once loaded they stay
loaded until the calling process ends. PerlIS therefore runs Perl scripts with a quicker turn-around
time than <EM>perl.exe</EM>.</P>
<P>Extra care should be taken when you write PerlIS applications. It is difficult to crash the web
server using <FONT size="-1">CGI,</FONT> but because the PerlIS <FONT size="-1">DLL</FONT> runs in
the process space of the server, your web server is more susceptible to crashes and hangs caused by
programming errors.</P>
<HR>
<H2><A name="Where_s_the_source_code_for_Perl">Where's the source code for Perl for ISAPI?</A></H2>
<P>The source for Perl for ISAPI is not distributed to the public.</P>
<HR>
<H1><A name="AUTHOR_AND_COPYRIGHT">AUTHOR AND COPYRIGHT</A></H1>
<P>This FAQ was originally assembled and maintained by Evangelo Prodromou. It has been revised and
updated by Brian Jepson of O'Reilly & Associates, David Grove, David Dmytryshyn and David Sparks
of ActiveState.</P>
<P>This FAQ is in the public domain. If you use it, however, please ensure that you give credit to
the original authors.</P>
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
<TR>
<TD class="block" valign="MIDDLE" width="100%" bgcolor="#cccccc"><FONT size="+1"><STRONG>
<P class="block"> ActivePerl FAQ</P>
</STRONG></FONT></TD>
</TR>
</TABLE>
</BODY>
</HTML>