home *** CD-ROM | disk | FTP | other *** search
/ The Best of Select: Windows 95 Special 1 / WINDOWS95_1.ISO / utils / perl32 / perltech.txt < prev    next >
Text File  |  1995-06-20  |  11KB  |  318 lines

  1. Larry Wall's Perl v4.x for NT/Win32/MSDOS
  2. -----------------------------------------
  3.  
  4.  
  5. Written By Maxwell Nairn Andrews
  6. --------------------------------
  7. CompuServe Mail: 100065,531
  8. Internet   Mail: maxwell@ukiis.demon.co.uk
  9.  
  10.  
  11. Last Version Alpha.0 15th January 1995
  12. --------------------------------------
  13.  
  14. Latest Version Beta.3 18th June 1995
  15. ------------------------------------
  16.  
  17. Technical Information for PERL32
  18. --------------------------------
  19.  
  20. I assume that the reader is fluent in MSDOS, and Win95/Windows/NT, as well as
  21. a Perl user. As this is an Beta version of PERL32, I will describe just the 
  22. basic operational usage of PERL32. PERL32 needs a 386 PC as a minimum, as well
  23. as 4 MB of extended memory.
  24.  
  25.  
  26. PERL32 Platform Setups
  27. ----------------------
  28.  
  29. General Setup
  30. -------------
  31.  
  32. The PERL32 GUI development environment creates temp files ( see REAME.1ST ). By
  33. default these files are created in the same directory, from where the PERL32.EXE
  34. was executed. By setting either the TMP=, or TEMP= DOS environment variables,
  35. these files will created there e.g SET TMP=C:\TMP. You could also create a RAM
  36. drive, and point the TMP, or TEMP environment variables to this drive. If you use
  37. the -b option then NO files are created ( see -b option below ). PERL32 GUI can
  38. use a mouse, so please load your MOUSE.EXE driver before PERL32.EXE.
  39.  
  40.  
  41. MSDOS Setup
  42. -----------
  43.  
  44. Files Required: PERL32.EXE DPMI32VM.OVL 32RTM.EXE GLOB32.EXE
  45.  
  46.  
  47. The above files need to be in the DOS search PATH, or in the same directory. The
  48. 32RTM.EXE is Borlands 32bit DPMI server. PERL32 locates 32RTM, and loads it. You
  49. can execute 32RTM as a TSR e.g 32RTM -X before executing PERL32. The -X option 
  50. will save some conventional memory. Loading 32RTM as a TSR will also decrease the
  51. PERL32 load time. By default Borlands 32bit DPMI server, allocates ALL extended
  52. memory. By using the RTM DOS environment variable you can limit this. For example:
  53.  
  54.  
  55.                 SET RTM=EXTMAX nnnn
  56.  
  57.  
  58. means don't allocate more than nnnn KB's of extended memory. Another example:
  59.  
  60.  
  61.                 SET RTM=EXTLEAVE nnnn
  62.  
  63.  
  64. means always leave nnnn KB's of extended memory. The default is 64Kb. There are
  65. other RTM= options but these are the important ones.
  66.  
  67.  
  68.  
  69. Windows/WFWG v3.1x Setup
  70. ------------------------
  71.  
  72. Files Required: PERL32.EXE GLOB32.EXE WINDPMI.386
  73.  
  74.  
  75. The WINDPMI.386 driver needs to be put into your Windows SYSTEM directory. Also,
  76. the SYSTEM.INI INI file will need to be modified. For example:
  77.  
  78.  
  79.                 [386Enh]
  80.                 device=WINDPMI.386
  81.  
  82.  
  83. Windows/WFWG v3.1x with PERL32 MUST be executed in a DOS box. PERL32 is not supported
  84. with Win32s, and threfore the DOS box will supply the DPMI server. Executing PERL32 
  85. in a DOS box should not cause any problems.
  86.  
  87.  
  88.  
  89. Windows NT and Windows 95 Setup
  90. -------------------------------
  91.  
  92. Files Required: PERL32.EXE GLOB32.EXE  
  93.  
  94.  
  95. PERL32 uses Win32 directly so no other files are required.
  96.  
  97.  
  98. PERL32 Additional Command Line Options
  99. --------------------------------------
  100.  
  101.  
  102. By default PERL32 comes up in Borlands Turbo Vision GUI. This is fine for development,
  103. but not required for production use. PERL32 has the -b option to ignore the GUI interface.
  104. For example:
  105.  
  106.  
  107.                 PERL32 -b WINVER.PL
  108.  
  109.  
  110. The above example will execute the WINVER.PL Perl script, but not using the GUI interface.
  111. Please note thats a 'lower-case' b. You can use the standard Perl options as well. For
  112. example:
  113.  
  114.  
  115.                 PERL32 -b -w WINVER.PL
  116.  
  117.  
  118. turns on Perl warnings as well. The DOS environment variables set in a Perl script, are
  119. local to that DOS environment. For example for DOSPATH.PL:
  120.  
  121.  
  122.                 $ENV{'PATH'}= 'C:\\DOS;C:\\PERL32';
  123.  
  124.  
  125. The above Perl script will only set, the current environment PATH. By using the -B option
  126. the MASTER DOS environment can be modified. For example:
  127.  
  128.  
  129.                 PERL32 -B DOSPATH.PL
  130.                 
  131.  
  132. This will set the PATH to C:\DOS;C:\PERL32. Note that the -B option implies the -b option.
  133. The -B option will not be activated in GUI mode. Use the -B option with caution, it has only
  134. been tested on DOS 6.2x, and could wipe out your DOS environment. The -b, and -B options are
  135. remove before executing the Perl code, and hence does not interfer with the standard options.
  136.  
  137.  
  138. The PERL32 GUI Interface
  139. ------------------------
  140.  
  141. The PERL32 GUI is written in Borlands 32bit Turbo Vision v2.0. Although design for DOS based
  142. applications, I have modified it so that it will work correctly in CONSOLE mode on NT, Windows
  143. v3.1x, and Windows 95. If you have a mouse device, please load the MOUSE.EXE driver before 
  144. loading PERL32. By default PERL32 will always execute in GUI mode, unless the -b option is used.
  145.  
  146. If the reader knows how to use Microsoft Windows, then using PERL32 with a mouse should be easy.
  147. There is only One editor window, and a clipboard. Both the editor window, and the clipboard can be
  148. used to Compile/Run any Perl v4 script. Use the 'tile' option in the Windows Menu to display the
  149. editor window, and clipboard together. Note that clipboard is hidden by default. The Show Clipboard
  150. option is in the Edit Menu. Both the editor window, and the clipboard are 'Zoom'able.
  151.  
  152. The PERL32 GUI has Two TELETYPE TERMINALS, one for the standard out ( STDOUT ), and one for the
  153. standard error ( STDERR ). These windows can be activated at any time by using the F4, and ALT-F4
  154. function keys. These Two windows automatically become visible, when there is New output to be 
  155. displayed. These windows are TELETYPE in nature, and are always created. You can scroll back to past
  156. output events. Note these TELETYPE windows can not be cleared, or erased. The main editor window
  157. is what you will be using for your development Perl v4 scripts. This is a gap-buffer editor, and has
  158. a limit of 64Kb. This means a Perl v4 script must not be over 64Kb in size. This is Borlands limit
  159. not mine.
  160.  
  161. To Compile a Perl v4 script, you would either load an existing Perl v4 script, or create one in the
  162. editor window/clipboard, and press F9 to Compile, and Run the Perl script. Placing the mouse pointer
  163. over the F9 Compile/Run Menu, and pressing the left mouse button does the same. If there are any Perl
  164. errors then the Perl STDERR will be displayed, and the Status Information window updated. The PERL32
  165. GUI will automatically jump to the line with the error, and change the cursor into a 'block'. Whenever
  166. the cursor is in 'block' mode, and the INSERT key is not on, then a Perl script error has occured. As
  167. soon as the Perl script error is cleared, then the cursor will return to normal.
  168.  
  169. *NOTE* 
  170.  
  171. You don't have to keep saving your Perl v4 script, in order to compile it with F9. As soon as you make
  172. changes to the editor window, or clipboard you can compile these changes with the F9 function key. 
  173.  
  174. Command Line Arguments in the GUI
  175. ---------------------------------
  176.  
  177. To change the command line arguments, use the Control-ENTER key, or go to the options Menu. You can 
  178. place additional command line arguments, to the Perl scripts in this input line box. Any original PERL32
  179. command line arguments, are copied into the buffer on every invocation. These can be deleted, and new 
  180. command line options put in their place. There is one option that you can use here, namely a single 
  181. hyphen '-'. The single hyphen placed anywhere in the Control-ENTER input box, can be used to substitue 
  182. the name of the Perl v4 script to compile. For example if the Control-ENTER input box was:
  183.  
  184.  
  185.                 -w - TEST.TXT
  186.  
  187.  
  188. and the name of the Perl v4 script was TEST.PL, the Perl compiler would be passed:
  189.  
  190.  
  191.                 -w TEST.PL TEST.TXT
  192.  
  193.  
  194. The Control-ENTER input parameters remain active, until the next invocation of the Control-ENTER option.
  195.  
  196.  
  197. PERL32 Examples
  198. ---------------
  199.  
  200. I have only supplied One example called: WINVER.PL. I have added a New Perl function called WINVER, that
  201. returns the platform information. This example is shown below:
  202.  
  203. # Program Example for O/S Version Check
  204. # by Maxwell N. Andrews
  205. # Date: 12th Jan 1995
  206.  
  207. $winver= winver( );
  208. $platform= "Unknown";
  209.  
  210. if ( $winver & 0x80000000 ) {
  211.  
  212.    $platform= ( $winver & 0x40000000 ) ? "Windows 95": "Win32s";
  213. }
  214. else {
  215.  
  216.      $platform= "Windows NT, or DPMI32";
  217. }
  218.  
  219. printf( "You are using $platform v%d.%d\n", $winver & 0xff, ( $winver >> 8 ) & 0xff );
  220.  
  221.  
  222. # End of Program
  223.  
  224.  
  225. This just uses the Microsoft Windows "GetVersion" API call.
  226.  
  227.  
  228. PERL32 Odds and Ends
  229. --------------------
  230.  
  231. Bugs
  232. ----
  233.  
  234. Borlands C++ compiler v4.5 still has a few bugs lurking about. I originally hoped that this Beta version
  235. would be ready in November 1994, but I had to wait for the v4.5 compiler. If at any time the PERL32 program
  236. justs exits to MSDOS, then most probably you have found a bug. This is normally due to the conversion to 
  237. 32bits, and the memory violations that occur.
  238.  
  239. Ommissions
  240. ----------
  241.  
  242. The standard in, or STDIN of the PERL32 GUI, is not bound to a window. This means that on keyboard input, you
  243. can overwrite any window. This will not effect the operation of PERL32, it just looks messy.
  244.  
  245.  
  246. Immediate Plans for PERL32
  247. --------------------------
  248.  
  249. I am at present adding support for Microsoft NT/Windows 95 Registry. This version of Perl will be known 
  250. as: WINPERL. It is hoped that WINPERL can be used as a tool for setup, and maintainance of the Registry.
  251.  
  252.  
  253. Whats NEW in PERL32 Beta.3 
  254. --------------------------
  255.  
  256. PERL32 Beta.3 contains various bug fixes etc.
  257.  
  258. (1.     Perl 'require' open file handle problem fixed
  259.  
  260. (2.     Perl 'readdir' function problem fixed
  261.  
  262. (3.     Perl <<EOF problem fixed
  263.  
  264. (4.     Borland C++ v4.5 Bug fixes for PERL32, and GLOB32
  265.  
  266. (5.     Swapped Terminal Output/Error Output Function Keys F4, Alt-F4
  267.  
  268. (6.     Included SAMPLE WINPERL.EXE Program with PL scripts
  269.  
  270.  
  271. GUI WINPERL for Win32, Win32s, Windows 95, and Windows NT
  272. ---------------------------------------------------------
  273.  
  274. I have included in this Beta.3 release my WINPERL for Win32. This will 
  275. function with Windows v3.1x (with Win32s), Windows 95, and Windows NT. 
  276. I have not included any more information than this because WINPERL is 
  277. still being developed. Registry support is now functional in WINPERL, 
  278. but no documentation has been written at this present time.
  279.  
  280. I hope you find it useful.
  281.  
  282.  
  283. WINPERL Known Problems
  284. ----------------------
  285.  
  286. (1.     STDIO output Window will corrupt if Two Perl Windows are left opened
  287.  
  288. (2.     Perl output slow due to STDIO redirection
  289.  
  290. (3.     Sometimes STDIO output Window refuses to 'die'
  291.  
  292.  
  293. WINPERL PL Scripts
  294. ------------------
  295.  
  296. HIVES.PL   -- WINPERL 'require' PL script for Registry Access
  297.  
  298. SMTP.PL    -- Sample SMTP Enable script for Internet Mail in Windows 95
  299.  
  300. LMHOSTS.PL -- Sample DNS/LMHOST Setup for Windows 95
  301.  
  302.  
  303. For example, to execute SMTP.PL under Windows 95 in batch mode:
  304.  
  305.  
  306.            WINPERL -b SMTP.PL
  307.  
  308.  
  309. Notes
  310. -----
  311.  
  312. No TCP/IP socket support in Perl32/WINPERL
  313.  
  314.  
  315.  
  316.  
  317.  
  318.