home *** CD-ROM | disk | FTP | other *** search
/ A Beginner's Guide to the Internet / INTERNET.ISO / text / faqs / perl5a.rea < prev    next >
Encoding:
Text File  |  1995-06-21  |  7.3 KB  |  190 lines

  1. FYI ...
  2.  
  3.      A BETA version of my 32-bit MSDOS Perl 5.000 port is now
  4. available:
  5.  
  6. ***** IMPORTANT NOTE!
  7.  
  8.     THIS VERSION MAY HAVE BUGS, AND HAS A HIGHER THAN "USUAL" CHANCE
  9.     OF CORRUPTING YOUR DISK.  BACK UP YOUR HARD DISK BEFORE USING
  10.     THIS VERSION.  REPEAT: BACK UP YOUR HARD DISK BEFORE USING THIS
  11.     VERSION!
  12.  
  13. -r--r--r--   1 bin      bin      1170891 Oct 28 09:37 perl5a1.zip
  14. -r--r--r--   1 bin      bin      1198985 Oct 28 09:37 perl5a2.zip
  15. -r--r--r--   1 bin      bin       575899 Oct 28 09:37 perl5a3.zip
  16.  
  17. This is, basically, a snapshot of my sources and executables, and is
  18. intended for use by people who want a "preview" of what I'm doing.  It
  19. is not intended for production work, although I imagine that some people
  20. may want to use it for that.  You must get all three .zip files.  The
  21. sources and executables are all mixed together with these files, and I
  22. have not yet made an attempt at creating a minimal "binaries + support
  23. files" package.
  24.  
  25.      For a starting point, read the file "perl-5.000/readme.1st".
  26.  
  27.      At the end of this message, I've appended a list of
  28. changes/enhancements that I've made to Perl 5.000, since bigperl 4.036M3
  29. (note that I just recently sent 4.036M4 off to SimTel).  One change that
  30. is not mentioned is a minimally-working native Windows version of Perl
  31. 5.000.  While the binary is included in the above package, it really
  32. isn't usable for much (really!).  It's included mainly as a "gee-whiz"
  33. item.  Also, dynamic loading is not supported, and the following
  34. packages are statically-linked: db_file, sdbm, and fcntl.
  35.  
  36.      Items on my list of things to do include:
  37.  
  38. * General access to DOS interrupts.
  39.  
  40. * Windows support (e.g., Perl DLL, DLL autoloading, etc.).
  41.  
  42.      I'm also working with a couple other sites to make MSDOS Perl 5.000
  43. available, and will post any announcements here.
  44.  
  45.      -- Darryl Okahata
  46.     Internet: darrylo@sr.hp.com
  47.  
  48. DISCLAIMER: this message is the author's personal opinion and does not
  49. constitute the support, opinion or policy of Hewlett-Packard or of the
  50. little green men that have been following him all day.
  51.  
  52. ===============================================================================
  53. ***** Changes to make Perl 5.000:
  54.  
  55. * NOTE: with Perl 5, the following trick to encapsulate Perl inside .BAT
  56.   files no longer work:
  57.  
  58.     @rem = '
  59.     @echo off
  60.     perl -S %0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9 
  61.     goto endofperl
  62.     ';
  63.     # Insert your perl script here.  Your perl script goes here, and only
  64.     # here.
  65.     __END__
  66.     :endofperl
  67.  
  68.   Perl complains about "@echo" needing to be quoted.  Use the following
  69.   form instead:
  70.  
  71.     @echo off
  72.     perl -x -S %0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9 
  73.     goto endofperl
  74.     #! /usr/bin/perl
  75.     # The previous comment is REQUIRED!  This comment, and the following
  76.     # ones, can be deleted.
  77.     # Insert your perl script here.  Your perl script goes here, and only
  78.     # here.
  79.     __END__
  80.     :endofperl
  81.  
  82.   Note that the above DEPENDS on having a line that begins with "#!" and
  83.   contains "perl".
  84.  
  85. * The a2p and s2p programs have been ported.  Check out the "x2p"
  86.   subdirectory.  The "s2p" program is really "s2p.bat"; however, in
  87.   order for this to work, perl.exe, dos4gw.exe, and perlcpp.exe must
  88.   have been properly installed (be somewhere in %PATH).  Both a2p.exe
  89.   and s2p.bat produce MSDOS batch file syntax; the output can be
  90.   placed directly into a .BAT file and immediately executed as such.
  91.   This means that the output will have to be edited if you want to use
  92.   it on some other platform, like Unix.  Doing this is simple: a few
  93.   lines at the beginning and end of the .BAT file need to be deleted.
  94.  
  95. * Note that the output of s2p.bat is completely unindented.  This is a
  96.   side-effect of the simple C preprocessor used ("perlcpp.exe"), which
  97.   is based upon the very ancient DECUS C preprocessor, and which deletes
  98.   leading whitespace on a line.  If you don't like this, edit the code
  99.   using Emacs' perl-mode, and use the indent-region feature.
  100.  
  101. * While a perlcpp.exe exists, perl's -P option has not (yet?) been
  102.   implemented.
  103.  
  104. * MSDOS Perl now verifies that "TMP", "TEMP", or "TEMPDIR" contains a
  105.   valid directory before using it.  However, no check is made to verify
  106.   that files can actually be created in the directory (e.g., the
  107.   directory may be on a read-only network drive).  If none of these
  108.   variables are set, or none contain a valid/existing directory name,
  109.   the root directory of the current drive will be used (actually, the
  110.   current drive *WHEN* the first temp file is created will be used --
  111.   this is an important distinction for those programs that switch
  112.   between drives).  Once a directory is chosen, that directory will
  113.   continue to be used until perl terminates.
  114.  
  115. * When executing files via system() or pipes opened via open(), any
  116.   forward slashes ("/") in the executable program name are changed to
  117.   backslashes.  You can now use statements like:
  118.  
  119.     open(IN, "./perl /a/b/fooscr |");
  120.  
  121.   This gets changed internally to:
  122.  
  123.     open(IN, ".\perl /a/b/fooscr |");
  124.  
  125.   Before, this would not work because MSDOS tried to execute the command
  126.   "." with the option "/perl".
  127.  
  128. * Extra periods (".") in a filename are changed to underscores ("_"), to
  129.   make it slightly easier to port Unix perl scripts (however, this can
  130.   cause other problems).  This allows the use of filenames such as
  131.   "a.b.c.d", which gets translated into "a_b_c.d".  However, note that
  132.   this translation is done ONLY to files accessed directly by perl (via
  133.   stat() or open()); NOTHING is done to filenames used in, for example:
  134.  
  135.     open(IN, "cat a.b.c.d|");
  136.     system("type a.b.c.d");
  137.     system("mycmd > a.b.c.d");
  138.  
  139.   Also, the translation is done only for the actual BASE filename.  Any
  140.   directory specification up to the base file name is NOT translated.
  141.   Repeat: directory names are *NOT* translated.  For example, the
  142.   following names get properly translated:
  143.  
  144.         This name                Becomes
  145.     -----------------        -----------------
  146.     /a/b/c/d/e.f.g.h        /a/b/c/d/e_f_g.h
  147.     /a/b/c.d/e.f.g.h        /a/b/c.d/e_f_g.h
  148.     /a/b/c.d/.e.f            /a/b/c.d/_e.f
  149.  
  150.   But these do not:
  151.  
  152.         This name                Becomes (illegal)
  153.     -----------------        -------------------------
  154.     /a.b/.c.d/.e.f            /a.b/.c.d/_e.f
  155.     /a.b.c.d/e.f.g            /a.b.c.d/e_f.g
  156.  
  157. * The filename "/dev/null" is now auto-translated into "nul", the MSDOS
  158.   equivalent of the null device.
  159.  
  160. * Berkeley db now works properly.  A bug in lseek() was found, reported,
  161.   and worked around.  Berkeley db 1.85 is now being used.  GDBM has been
  162.   drop-kicked.
  163.  
  164. * The perlglob.exe program is now compiled using the 16-bit WATCOM
  165.   compiler.  Borland compilers are now superfluous.  The compact memory
  166.   model (64K code, >64K data) is still being used, to handle large
  167.   directories.
  168.  
  169. * The default location for the perl library support files is
  170.   "c:\perl5\lib".  This can be changed through the use of the PERLLIB
  171.   environment variable, or by recompiling perl.
  172.  
  173. * Locations of MSDOS files were shuffled around in possible anticipation
  174.   of possible multi-platform compiles (e.g., MSDOS, Windows, Windows NT,
  175.   etc.).
  176.  
  177. * The perl documentation can be found as "pod" ("plain old
  178.   documentation") files in the "pod" subdirectory.
  179.  
  180. * Fixed bug where pipes in subroutines didn't work.  For example, this
  181.   failed:
  182.  
  183.     open(PIPE, "| myprog");
  184.  
  185. * An old version of the DOS/4GW extender is being used, because of
  186.   suspected bugs in newer versions of the extender.
  187.  
  188. * The "makeperl.bat" batch file is no longer needed to compile Perl.
  189.   All flags are now set by the Makefile.
  190.