On
Microsoft
Windows, your mileage varies according to which Web server you use.
The freely available 16-bit server for Windows 3.1, Bob Denny's
winhttpd,
supports a CGI interface for Perl programs, but it also supports
a Windows CGI interface that allows you to write CGI programs in
languages like Visual Basic, Delphi, and Visual C++.
Under
Windows
NT and Windows 95, available servers are
WebSite
by O'Reilly & Associates, Inc. (developed by Denny as a 32-bit
commercial product),
NetSite
by Netscape,
Purveyor by Process
Software, and the
Internet
Server Solution from Microsoft (not yet released as of this writing,
but imminent and not easily ignored). There is also another freely
available server (
EMWACS), although
it is not considered as robust as the commercial products.
All platforms support CGI development in Perl. In addition,
WebSite, Netscape, and Microsoft all include Windows CGI interfaces.
However, the CGI implementations are all slightly different.
Visual Basic is perfect
for developing CGI applications because it supports numerous features
for accessing data in the Windows environment. This includes OLE,
DDE, Sockets, and ODBC. ODBC,
or Open Database Connectivity, allows you to access a variety of
relational and non-relational databases. The actual implementation
of the Windows CGI interface determines how CGI variables are read
from a Visual Basic program. This simple example uses the WebSite
1.0 server, which depends on a CGI.BAS module that sets up some
global variables representing the CGI variables.
Sub CGI_Main ()
Send ("Content-type: text/plain")
Send ("")
Send ("Server Name")
Send ("")
Send ("The server name is: " & CGI_ServerName)
End Sub
The module function Main in CGI.BAS calls
the user-written CGI_Main function when executing
the CGI program. The CGI_ServerName variable
contains the name of the server. As we said, your mileage will vary
according to which Windows-based server you use.
As I mentioned earlier, Perl has been ported to Windows NT as well
as to many other platforms, including DOS and Windows 3.1. This
makes CGI programming much easier on these platforms, because we
have access to the powerful pattern-matching abilities and to various
extensions to such utilities as databases and graphics packages.