BETA version of MSDOS Perl 5.000 now available 
Author Message
 BETA version of MSDOS Perl 5.000 now available

FYI ...

32-bit MSDOS port of Perl 5.000 is now available via anonymous ftp from (please try to get this during off-hours):



1152 -rw-r--r--   1 6282     2000      1170891 Oct 28 16:42
1184 -rw-r--r--   1 6282     2000      1198985 Oct 28 16:43
 576 -rw-r--r--   1 6282     2000       575899 Oct 28 16:43

This is, basically, a snapshot of my sources and executables, and is
intended for use by people who want a "preview" of what I'm doing.  It
is not intended for production work, although I imagine that some people
may want to use it for that.  You must get all three .zip files.  The
sources and executables are all mixed together with these files, and I
have not yet made an attempt at creating a minimal "binaries + support
files" package.

     For a starting point, read the file "perl-5.000/readme.1st".

     At the end of this message, I've appended a list of
changes/enhancements that I've made to Perl 5.000, since bigperl 4.036M3
(note that I just recently sent 4.036M4 off to SimTel).  One change that
is not mentioned is a minimally-working native Windows version of Perl
5.000.  While the binary is included in the above package, it really
isn't usable for much (really!).  It's included mainly as a "gee-whiz"
item.  Also, dynamic loading is not supported, and the following
packages are statically-linked: db_file, sdbm, and fcntl.

     Items on my list of things to do include:

* General access to DOS interrupts.

* Windows support (e.g., Perl DLL, DLL autoloading, etc.).

     I'm also working with a couple other sites to make MSDOS Perl 5.000
available, and will post any announcements here.

     -- Darryl Okahata

DISCLAIMER: this message is the author's personal opinion and does not
constitute the support, opinion or policy of Hewlett-Packard or of the
little green men that have been following him all day.

***** Changes to make Perl 5.000:

* NOTE: with Perl 5, the following trick to encapsulate Perl inside .BAT
  files no longer work:

        perl -S %0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
        goto endofperl
        # Insert your perl script here.  Your perl script goes here, and only
        # here.

  form instead:

        perl -x -S %0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
        goto endofperl
        #! /usr/bin/perl
        # The previous comment is REQUIRED!  This comment, and the following
        # ones, can be deleted.
        # Insert your perl script here.  Your perl script goes here, and only
        # here.

  Note that the above DEPENDS on having a line that begins with "#!" and
  contains "perl".

* The a2p and s2p programs have been ported.  Check out the "x2p"
  subdirectory.  The "s2p" program is really "s2p.bat"; however, in
  order for this to work, perl.exe, dos4gw.exe, and perlcpp.exe must
  have been properly installed (be somewhere in %PATH).  Both a2p.exe
  and s2p.bat produce MSDOS batch file syntax; the output can be
  placed directly into a .BAT file and immediately executed as such.
  This means that the output will have to be edited if you want to use
  it on some other platform, like Unix.  Doing this is simple: a few
  lines at the beginning and end of the .BAT file need to be deleted.

* Note that the output of s2p.bat is completely unindented.  This is a
  side-effect of the simple C preprocessor used ("perlcpp.exe"), which
  is based upon the very ancient DECUS C preprocessor, and which deletes
  leading whitespace on a line.  If you don't like this, edit the code
  using Emacs' perl-mode, and use the indent-region feature.

* While a perlcpp.exe exists, perl's -P option has not (yet?) been

* MSDOS Perl now verifies that "TMP", "TEMP", or "TEMPDIR" contains a
  valid directory before using it.  However, no check is made to verify
  that files can actually be created in the directory (e.g., the
  directory may be on a read-only network drive).  If none of these
  variables are set, or none contain a valid/existing directory name,
  the root directory of the current drive will be used (actually, the
  current drive *WHEN* the first temp file is created will be used --
  this is an important distinction for those programs that switch
  between drives).  Once a directory is chosen, that directory will
  continue to be used until perl terminates.

* When executing files via system() or pipes opened via open(), any
  forward slashes ("/") in the executable program name are changed to
  backslashes.  You can now use statements like:

        open(IN, "./perl /a/b/fooscr |");

  This gets changed internally to:

        open(IN, ".\perl /a/b/fooscr |");

  Before, this would not work because MSDOS tried to execute the command
  "." with the option "/perl".

* Extra periods (".") in a filename are changed to underscores ("_"), to
  make it slightly easier to port Unix perl scripts (however, this can
  cause other problems).  This allows the use of filenames such as
  "a.b.c.d", which gets translated into "a_b_c.d".  However, note that
  this translation is done ONLY to files accessed directly by perl (via
  stat() or open()); NOTHING is done to filenames used in, for example:

        open(IN, "cat a.b.c.d|");
        system("type a.b.c.d");
        system("mycmd > a.b.c.d");

  Also, the translation is done only for the actual BASE filename.  Any
  directory specification up to the base file name is NOT translated.
  Repeat: directory names are *NOT* translated.  For example, the
  following names get properly translated:

            This name                       Becomes
        -----------------               -----------------
        /a/b/c/d/e.f.g.h                /a/b/c/d/e_f_g.h
        /a/b/c.d/e.f.g.h                /a/b/c.d/e_f_g.h
        /a/b/c.d/.e.f                   /a/b/c.d/_e.f

  But these do not:

            This name                       Becomes (illegal)
        -----------------               -------------------------
        /a.b/.c.d/.e.f                  /a.b/.c.d/_e.f
        /a.b.c.d/e.f.g                  /a.b.c.d/e_f.g

* The filename "/dev/null" is now auto-translated into "nul", the MSDOS
  equivalent of the null device.

* Berkeley db now works properly.  A bug in lseek() was found, reported,
  and worked around.  Berkeley db 1.85 is now being used.  GDBM has been

* The perlglob.exe program is now compiled using the 16-bit WATCOM
  compiler.  Borland compilers are now superfluous.  The compact memory
  model (64K code, >64K data) is still being used, to handle large

* The default location for the perl library support files is
  "c:\perl5\lib".  This can be changed through the use of the PERLLIB
  environment variable, or by recompiling perl.

* Locations of MSDOS files were shuffled around in possible anticipation
  of possible multi-platform compiles (e.g., MSDOS, Windows, Windows NT,

* The perl documentation can be found as "pod" ("plain old
  documentation") files in the "pod" subdirectory.

* Fixed bug where pipes in subroutines didn't work.  For example, this

        open(PIPE, "| myprog");

* An old version of the DOS/4GW extender is being used, because of
  suspected bugs in newer versions of the extender.

* The "makeperl.bat" batch file is no longer needed to compile Perl.
  All flags are now set by the Makefile.

Wed, 16 Apr 1997 06:03:39 GMT  
 [ 1 post ] 

 Relevant Pages 

1. BETA version of MSDOS Perl 5.000 now available

2. New version of MSDOS Bigperl4 available

3. Getopt::Long version 2.4 beta 3 available on CPAN

4. Hypertext PERL manual 1.1 beta (for windows) available

5. Hypertext PERL manual 1.1 beta (for windows) available

6. Perl Builder 2.0 for LINUX - Beta Available

7. New PERL PDF Documentation Available for 5.004 Beta

8. Perl 5.003 Beta port to AS/400 V3R2 now available

9. Msdos version stumps perl users !

10. PERL 5.000 bug report (FORMATs from 4.036 to 5.000)

11. Problems with write in perl, version 5.0, Beta 1

12. perl COPS, version 1.02 or 1.03 beta


Powered by phpBB® Forum Software