We have seen some functions of the cgi-lib.pl previously. Lets take a closer look at version 2.18.
UNIX does not use a drive letter like Windows, and directories and file full names are separated by / (slash) not \ (backslash) as Windows do. So a file name in UNIX would be /usr/project/home.html while in Windows we would have something like c:\usr\project\home.html. If you have wondered why URLs are writen like http://home.ubalt.edu/abento/home.html now you know why -- the Internet was developed using UNIX terminology and conventions.
File names in UNIX do not have required extensions like in Windows.
job is a valid name in UNIX and both Windows 95/XP/2000 can also support
file names without extensions, but not DOS. Long file names are also supported.
But, in UNIX the . (dot) is a character as any other in the file name --
e.g. sales.report.1 The consequence is that dir * in UNIX is equivalent
to dir *.* in Windows.
Sendmail is a very sophisticated mail system that is a command in UNIX, not a separated program (refer to the class in forms and CGIs for our discussion of mail-lib.pl instead in Windows).
Crypt allows the encription of files and particularly passwords and it is also a native command in UNIX. Perl 5 for Win32 build 110 and above includes it -- example: $passwd = crypt(test99, substr($passwd, 0, 2)); -- where test99 is the non-encrypted password value. You can save the password to a file and later compare with input. See a very simple example in exist-crypt.pl
Grep is a very advanced search tool frequently used for HTML page
counters, search engines, etc. There is no generic substitute, you can
either use an UNIX port of grep
for Windows, or write specific scripts or programs
to perform a given function.
There are, without doubt, other commands that are source of problems, like cron, date (different format), etc, but the three above commands account for the majority of the port problems.
If you try to port a Perl command or library, and it does not seem to work, I suggest that you read the release notes of the build you are using. Also please note that cgi-lib.pl is no longer part of the standard distribution of Perl for Win32. Remember to download a new version of cgi-lib.pl and add to Perl/lib in order to provide compatibility with many scripts available on the Web.