home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _c86edccb50e1429e4cc36d5ac5346195 < prev    next >
Text File  |  2000-03-23  |  23KB  |  504 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Getopt::EvaP - evaluate Perl command line parameters.</TITLE>
  5. <LINK REL="stylesheet" HREF="../../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> Getopt::EvaP - evaluate Perl command line parameters.</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#export">EXPORT</A></LI>
  25.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  26.     <UL>
  27.  
  28.         <LI><A HREF="#introduction">Introduction</A></LI>
  29.         <LI><A HREF="#parameter description table (pdt) syntax">Parameter Description Table (PDT) Syntax</A></LI>
  30.         <LI><A HREF="#usage notes">Usage Notes</A></LI>
  31.     </UL>
  32.  
  33.     <LI><A HREF="#example">Example</A></LI>
  34.     <UL>
  35.  
  36.         <LI><A HREF="#customization of evap's help output">Customization of EvaP's Help Output</A></LI>
  37.         <LI><A HREF="#human interface guidelines">Human Interface Guidelines</A></LI>
  38.         <LI><A HREF="#variables manpager, pager and d_evap_do_page">Variables MANPAGER, PAGER and D_EVAP_DO_PAGE</A></LI>
  39.         <LI><A HREF="#return values">Return Values</A></LI>
  40.     </UL>
  41.  
  42.     <LI><A HREF="#see also">SEE ALSO</A></LI>
  43.     <LI><A HREF="#bugs">BUGS</A></LI>
  44.     <LI><A HREF="#author">AUTHOR</A></LI>
  45.     <LI><A HREF="#history">HISTORY</A></LI>
  46.     <LI><A HREF="#copyright">COPYRIGHT</A></LI>
  47. </UL>
  48. <!-- INDEX END -->
  49.  
  50. <HR>
  51. <P>
  52. <H1><A NAME="name">NAME</A></H1>
  53. <P>Getopt::EvaP - evaluate Perl command line parameters.</P>
  54. <P>
  55. <HR>
  56. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  57. <UL>
  58. <LI>Linux</LI>
  59. <LI>Solaris</LI>
  60. <LI>Windows</LI>
  61. </UL>
  62. <HR>
  63. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  64. <PRE>
  65.  use vars qw/@PDT @MM %OPT/;
  66.  use Getopt::EvaP;</PRE>
  67. <PRE>
  68.  EvaP \@PDT, \@MM, \%OPT;</PRE>
  69. <P>
  70. <HR>
  71. <H1><A NAME="export">EXPORT</A></H1>
  72. <P><CODE>use Getopt::EvaP</CODE> exports the subs <CODE>EvaP</CODE> and <CODE>EvaP_PAC</CODE> into your
  73. name space.</P>
  74. <P>
  75. <HR>
  76. <H1><A NAME="description">DESCRIPTION</A></H1>
  77. <P><STRONG>@PDT</STRONG>
  78. is the Parameter Description Table, which is a reference to a list of
  79. strings describing the command line parameters, aliases,
  80. types and default values.
  81. <STRONG>@MM</STRONG>
  82. is the Message Module, which is also a reference to a list of strings
  83. describing the command and it's parameters.
  84. <STRONG>%OPT</STRONG>
  85. is an optional hash reference where Evaluate Parameters should place its
  86. results.  If specified, the historical behaviour of modifying the calling
  87. routines' namespace by storing option values in <STRONG>%Options</STRONG>, <STRONG>%options</STRONG> and
  88. <STRONG>$opt*</STRONG> is disabled.</P>
  89. <P>
  90. <H2><A NAME="introduction">Introduction</A></H2>
  91. <P>Function Evaluate Parameters parses a Perl command line in a simple and
  92. consistent manner, performs type checking of parameter values, and provides
  93. the user with first-level help.  Evaluate Parameters is also embeddable in
  94. your application; refer to the <STRONG>evap_pac(2)</STRONG> man page for complete details.
  95. Evaluate Parameters handles command lines in the following format:</P>
  96. <PRE>
  97.   command [-parameters] [file_list]</PRE>
  98. <P>where parameters and file_list are all optional.  A typical example is the
  99. C compiler:</P>
  100. <PRE>
  101.   cc -O -o chunk chunk.c</PRE>
  102. <P>In this case there are two parameters and a file_list consisting of a
  103. single file name for the cc command.</P>
  104. <P>
  105. <H2><A NAME="parameter description table (pdt) syntax">Parameter Description Table (PDT) Syntax</A></H2>
  106. <P>Here is the PDT syntax.  Optional constructs are enclosed in [], and the
  107. | character separates possible values in a list.</P>
  108. <PRE>
  109.   PDT [program_name, alias]
  110.     [parameter_name[, alias]: type [ = [default_variable,] default_value]]
  111.   PDTEND [optional_file_list | required_file_list | no_file_list]</PRE>
  112. <P>So, the simplest possible PDT would be:</P>
  113. <PRE>
  114.   PDT
  115.   PDTEND</PRE>
  116. <P>This PDT would simply define a <EM>-help</EM> switch for the command, but is rather
  117. useless.</P>
  118. <P>A typical PDT would look more like this:</P>
  119. <PRE>
  120.   PDT frog
  121.     number, n: integer = 1
  122.   PDTEND no_file_list</PRE>
  123. <P>This PDT, for command frog, defines a
  124. single parameter, number (or n), of type integer with a default value of 1.
  125. The PDTEND <EM>no_file_list</EM> indicator indicates that no trailing file_list
  126. can appear on the command line.  Of course, the <EM>-help</EM> switch is defined
  127. automatically.</P>
  128. <P>The
  129. <EM>default_variable</EM>
  130. is an environment variable - see the section Usage Notes
  131. for complete details.</P>
  132. <P>
  133. <H2><A NAME="usage notes">Usage Notes</A></H2>
  134. <P>Usage is similar to getopt/getopts/newgetopt: define a Parameter
  135. Description Table declaring a list of command line parameters, their
  136. aliases, types and default values.  The command line parameter
  137. <EM>-help</EM> (alias <EM>-h</EM>) is automatically included by Evaluate
  138. Parameters.  After the evaluation the values of the command line
  139. parameters are stored in variable names of the form <STRONG>$opt_parameter</STRONG>,
  140. except for lists which are returned as <STRONG>@opt_parameter</STRONG>, where
  141. <EM>parameter</EM> is the full spelling of the command line parameter.
  142. NOTE: values are also returned in the hashes <STRONG>%options</STRONG> and
  143. <STRONG>%Options</STRONG>, with lists being passed as a reference to a list.</P>
  144. <P>Of course, you can specify where you want Evaluate Parameters to return its
  145. results, in which case this historical feature of writing into your namespace
  146. is disabled.
  147. </P>
  148. <PRE>
  149.  
  150. An optional PDT line can be included that tells Evaluate Parameters whether
  151. or not trailing file names can appear on the command line after all the
  152. parameters.  It can read I<no_file_list>, I<optional_file_list> or
  153. I<required_file_list> and, if not specified, defaults to optional.  Although
  154. placement is not important, this line is by convention the last line of the
  155. PDT declaration.</PRE>
  156. <P>Additionally a Message Module is declared that describes the command
  157. and provides examples.  Following the main help text an optional
  158. series of help text messages can be specified for individual command
  159. line parameters.  In the following sample program all the parameters
  160. have this additional text which describes that parameter's type.  The
  161. leadin character is a dot in column one followed by the full spelling
  162. of the command line parameter.  Use <EM>-full_help</EM> rather than <EM>-help</EM>
  163. to see this supplemental information.  This sample program illustrates
  164. the various types and how to use <STRONG>EvaP()</STRONG>.  The <EM>key</EM> type is a
  165. special type that enumerates valid values for the command line
  166. parameter.  The <EM>boolean</EM> type may be specified as TRUE/FALSE,
  167. YES/NO, ON/OFF or 1/0.  Parameters of type <EM>file</EM> have ~ and $HOME
  168. expanded, and default values <EM>stdin</EM> and <EM>stdout</EM> converted to `-'
  169. and `>-', respectively.  Of special note is the default value
  170. <EM>$required</EM>: when specified, Evaluate Parameters will ensure a value
  171. is specified for that command line parameter.</P>
  172. <P>All types except <EM>switch</EM> may be <EM>list of</EM>, like the <EM>tty</EM> parameter below.
  173. A list parameter can be specified multiple times on the command line.
  174. NOTE: in general you should ALWAYS quote components of your lists, even if
  175. they're not type string, since Evaluate Parameters uses eval to parse them.
  176. Doing this prevents eval from evaluating expressions that it shouldn't, such
  177. as file name shortcuts like $HOME, and backticked items like `hostname`.
  178. Although the resulting PDT looks cluttered, Evaluate Parameters knows what
  179. to do and eliminates superfluous quotes appropriately.
  180. </P>
  181. <PRE>
  182.  
  183. Finally, you can specify a default value via an environment variable.  If
  184. a command line parameter is not specified and there is a corresponding
  185. environment variable defined then Evaluate Parameters will use the value
  186. of the environment variable.  Examine the I<command> parameter for the syntax.
  187. With this feature users can easily customize command parameters to their
  188. liking.   Although the name of the environment variable can be whatever you
  189. choose,  the following scheme is suggested for consistency and to avoid
  190. conflicts in names:</PRE>
  191. <UL>
  192. <LI>
  193. Use all uppercase characters.
  194. <P></P>
  195. <LI>
  196. Begin the variable name with D_, to suggest a default variable.
  197. <P></P>
  198. <LI>
  199. Continue with the name of the command or its alias followed by an underscore.
  200. <P></P>
  201. <LI>
  202. Complete the variable name with the name of the parameter or its alias.
  203. <P></P></UL>
  204. <P>So, for example, D_DISCI_DO would name a default variable for the
  205. display_option (do) parameter of the display_command_information
  206. (disci) command.  Works for MS-DOS and Unix.</P>
  207. <P>
  208. <HR>
  209. <H1><A NAME="example">Example</A></H1>
  210. <PRE>
  211.  #!/usr/local/bin/perl
  212. </PRE>
  213. <PRE>
  214.  
  215.  use Getopt::EvaP;</PRE>
  216. <PRE>
  217.  @PDT = split /\n/, <<'end-of-PDT';
  218.  PDT sample
  219.    verbose, v: switch
  220.    command, c: string = D_SAMPLE_COMMAND, "ps -el"
  221.    scale_factor, sf: real = 1.2340896e-1
  222.    millisecond_update_interval, mui: integer = $required
  223.    ignore_output_file_column_one, iofco: boolean = TRUE
  224.    output, o: file = stdout
  225.    queue, q: key plotter, postscript, text, printer, keyend = printer
  226.    destination, d: application = `hostname`
  227.    tty, t: list of name = ("/dev/console", "/dev/tty0", "/dev/tty1")
  228.  PDTEND optional_file_list
  229.  end-of-PDT</PRE>
  230. <PRE>
  231.  @MM = split /\n/, <<'end-of-MM';
  232.  sample</PRE>
  233. <PRE>
  234.         A sample program demonstrating typical Evaluate Parameters
  235.         usage.</PRE>
  236. <PRE>
  237.         Examples:</PRE>
  238. <PRE>
  239.           sample
  240.           sample -usage_help
  241.           sample -help
  242.           sample -full_help
  243.           sample -mui 1234
  244.  .verbose
  245.         A switch type parameter emulates a typical standalone
  246.         switch. If the switch is specified Evaluate Parameters
  247.         returns a '1'.
  248.  .command
  249.         A string type parameter is just a list of characters,
  250.         which must be quoted if it contains whitespace. 
  251.         NOTE:  for this parameter you can also create and
  252.         initialize the environment variable D_SAMPLE_COMMAND to
  253.         override the standard default value for this command
  254.         line parameter.  All types except switch may have a
  255.         default environment variable for easy user customization.
  256.  .scale_factor
  257.         A real type parameter must be a real number that may
  258.         contain a leading sign, a decimal point and an exponent.
  259.  .millisecond_update_interval
  260.         An integer type parameter must consist of all digits
  261.         with an optional leading sign.  NOTE: this parameter's
  262.         default value is $required, meaning that
  263.         Evaluate Parameters ensures that this parameter is
  264.         specified and given a valid value.  All types except
  265.         switch may have a default value of $required.
  266.  .ignore_output_file_column_one
  267.         A boolean type parameter may be TRUE/YES/ON/1 or
  268.         FALSE/NO/OFF/0, either upper or lower case.  If TRUE,
  269.         Evaluate Parameters returns a value of '1', else '0'.
  270.  .output
  271.         A file type parameter expects a filename.  For Unix
  272.         $HOME and ~ are expanded.  For EvaP/Perl stdin and
  273.         stdout are converted to '-' and '>-' so they can be
  274.         used in a Perl open() function.
  275.  .queue
  276.         A key type parameter enumerates valid values.  Only the
  277.         specified keywords can be entered on the command line.
  278.  .destination
  279.         An application type parameter is not type-checked in
  280.         any - the treatment of this type of parameter is
  281.         application specific.  NOTE:  this parameter' default
  282.         value is enclosed in grave accents (or "backticks").
  283.         Evaluate Parameters executes the command and uses it's
  284.         standard output as the default value for the parameter.
  285.  .tty
  286.         A name type parameter is similar to a string except
  287.         that embedded white-space is not allowed.  NOTE: this
  288.         parameter is also a LIST, meaning that it can be
  289.         specified multiple times and that each value is pushed
  290.         onto a Perl LIST variable.  In general you should quote
  291.         all list elements.  All types except switch may be
  292.         'list of'.
  293.  end-of-MM</PRE>
  294. <PRE>
  295.  EvaP \@PDT, \@MM;              # evaluate parameters</PRE>
  296. <PRE>
  297.  print "\nProgram name:\n  $Options{'help'}\n\n";</PRE>
  298. <PRE>
  299.  if (defined $Options{'verbose'}) {print "\nverbose = $Options{'verbose'}\n";}
  300.  print "command = \"$Options{'command'}\"\n";
  301.  print "scale_factor  = $Options{'scale_factor'}\n";
  302.  print "millisecond_update_interval = $Options{'millisecond_update_interval'}\n";
  303.  print "ignore_output_file_column_one = $Options{'ignore_output_file_column_one'}\n";
  304.  print "output = $Options{'output'}\n";
  305.  print "queue = $Options{'queue'}\n";
  306.  print "destination = $Options{'destination'}\n";
  307.  print "'list of' tty = \"", join('", "', @{$Options{'tty'}}), "\"\n";</PRE>
  308. <PRE>
  309.  print "\nFile names:\n  ", join ' ', @ARGV, "\n" if @ARGV;</PRE>
  310. <P>Using the PDT as a guide, Evaluate Parameters parses a user's
  311. command line, returning the results of the evaluation to global
  312. variables of the form <STRONG>$opt_parameter</STRONG>, <STRONG>@opt_parameter</STRONG>,
  313. <STRONG>%Options{'parameter'}</STRONG> or <STRONG>%options{'parameter'}</STRONG>, where <EM>parameter</EM>
  314. is the full spelling of the command line parameter.</P>
  315. <P>Of course, you can specify where you want Evaluate Parameters to return its
  316. results, in which case this historical feature of writing into your namespace
  317. is disabled.</P>
  318. <P>Every command using Evaluate Parameters automatically has a
  319. <EM>-help</EM> switch which displays parameter help; no special code is
  320. required in your application.</P>
  321. <P>
  322. <H2><A NAME="customization of evap's help output">Customization of EvaP's Help Output</A></H2>
  323. <P>There are several Help Hook strings that can be altered to customize
  324. <STRONG>EvaP</STRONG>'s help output.  Currently there is only one general area that can
  325. be customized: usage and error text dealing with the trailing file_list.
  326. For instance, if a command requires one or more trailing file names after
  327. all the command line switches, the default <EM>-help</EM> text is:</P>
  328. <PRE>
  329.  file(s) required by this command</PRE>
  330. <P>Some commands do not want trailing ``file names'', but rather some other
  331. type of information.  An example is <EM>display_command_information</EM> where
  332. a single Program_Name is expected.  The following code snippet shows
  333. how to do this:</P>
  334. <PRE>
  335.   $Getopt::EvaP::evap_Help_Hooks{'P_HHURFL'} = " Program_Name\n";
  336.   $Getopt::EvaP::evap_Help_Hooks{'P_HHBRFL'} =
  337.         "\nA Program_Name is required by this command.\n\n";
  338.   $Getopt::EvaP::evap_Help_Hooks{'P_HHERFL'} =
  339.         "A trailing Program_Name is required by this command.\n";
  340.   EvaP \@PDT, \@MM;</PRE>
  341. <P>As you can see, the hash <STRONG>%evap_Help_Hooks</STRONG> is indexed by a simple
  342. ordinal.  The ordinals are shown below and are mostly self-explanatory.
  343. In case you don't have access to the source
  344. for Evaluate Parameters, here are the default values of the Help Hook
  345. strings.</P>
  346. <PRE>
  347.   $Getopt::EvaP:evap_Help_Hooks{'P_HHURFL'} = " file(s)\n";
  348.   $Getopt::EvaP:evap_Help_Hooks{'P_HHUOFL'} = " [file(s)]\n";
  349.   $Getopt::EvaP:evap_Help_Hooks{'P_HHUNFL'} = "\n";
  350.   $Getopt::EvaP:evap_Help_Hooks{'P_HHBRFL'} =
  351.          "\nfile(s) required by this command\n\n";
  352.   $Getopt::EvaP:evap_Help_Hooks{'P_HHBOFL'} =
  353.         "\n[file(s)] optionally required by this command\n\n";
  354.   $Getopt::EvaP:evap_Help_Hooks{'P_HHBNFL'} = "\n";
  355.   $Getopt::EvaP:evap_Help_Hooks{'P_HHERFL'} =
  356.         "Trailing file name(s) required.\n";
  357.   $Getopt::EvaP:evap_Help_Hooks{'P_HHENFL'} =
  358.         "Trailing file name(s) not permitted.\n";</PRE>
  359. <P>The Help Hooks naming convention is rather simple:</P>
  360. <PRE>
  361.   P_HHtf</PRE>
  362. <PRE>
  363.     where:</PRE>
  364. <PRE>
  365.       P_HH  implies an Evaluate Parameters Help Hook
  366.      t     type:
  367.               U=Usage Help
  368.               B=Brief and Full Help
  369.               E=error message
  370.       f     file_list:
  371.               RFL=required_file_list
  372.               OFL=optional_file_list
  373.               NFL=no_file_list</PRE>
  374. <P>Note to <EM>genPerlTk</EM> and <EM>genTclTk</EM> users:  using these Help Hooks may 
  375. cause the ``genTk programs'' to generate an unuseable Tk script.  This 
  376. happens because the ``genTk programs'' look for the strings ``required by
  377. this command'' or ``optionally required by this command'' in order to 
  378. generate the file_list Entry widget - if these string are missing the
  379. widget is not created.  An easy solution is to ensure that your Help 
  380. Hook text contains said string, just like the code snippet above;
  381. otherwise you must manually add the required Tk code yourself.</P>
  382. <P>
  383. <H2><A NAME="human interface guidelines">Human Interface Guidelines</A></H2>
  384. <P>To make Evaluate Parameters successful, you, the application developer, must
  385. follow certain conventions when choosing parameter names and aliases.</P>
  386. <P>Parameter names consist of one or more words, separated by underscores, and
  387. describe the parameter (for example, <EM>verbose</EM> and <EM>spool_directory</EM>).</P>
  388. <P>You can abbreviate parameters:  use the first letter of each word in the
  389. parameter name.  Do not use underscores.  For example, you can abbreviate
  390. <EM>command</EM> as <EM>c</EM> and <EM>delay_period</EM> as <EM>dp</EM>.</P>
  391. <P>There are exceptions to this standard:</P>
  392. <UL>
  393. <LI>
  394. <EM>password</EM> is abbreviated <EM>pw</EM>.
  395. <P></P>
  396. <LI>
  397. The words <EM>minimum</EM> and <EM>maximum</EM> are abbreviated
  398. <EM>min</EM> and <EM>max</EM>.  So, the abbreviation for the
  399. parameter <EM>maximum_byte_count</EM> is <EM>maxbc</EM>.
  400. <P></P>
  401. <LI>
  402. There are no abbreviations for the parameters
  403. <EM>usage_help</EM> and <EM>full_help</EM>; I do not want to
  404. prevent <EM>uh</EM> and <EM>fh</EM> from being used as valid
  405. command line parameters.
  406. <P></P></UL>
  407. <P>
  408. <H2><A NAME="variables manpager, pager and d_evap_do_page">Variables MANPAGER, PAGER and D_EVAP_DO_PAGE</A></H2>
  409. <P>The environment variable MANPAGER (or PAGER) is used to control the
  410. display of help information generated by Evaluate Parameters.  If
  411. defined and non-null, the value of the environment variable is taken as
  412. the name of the program to pipe the help output through.  If no paging
  413. program is defined then the program <EM>more</EM> is used.</P>
  414. <P>The boolean environment variable D_EVAP_DO_PAGE can be set to FALSE/NO/OFF/0,
  415. any case, to disable this automatic paging feature (or you can set your
  416. paging program to <EM>cat</EM>).</P>
  417. <P>
  418. <H2><A NAME="return values">Return Values</A></H2>
  419. <P><STRONG>EvaP()</STRONG> behaves differently depending upon whether it's called to parse an 
  420. application's command line, or as an embedded command line parser
  421. (for instance, when using <STRONG>evap_pac()</STRONG>).</P>
  422. <PRE>
  423.             Application      Embedded
  424.             Command Line     Command Line 
  425.  ----------------------------------------
  426.  error      exit(1)          return(0)
  427.  success    return(1)        return(1)
  428.  help       exit(0)          return(-1)</PRE>
  429. <P>
  430. <HR>
  431. <H1><A NAME="see also">SEE ALSO</A></H1>
  432. <PRE>
  433.  evap(2)
  434.  evap.c(2)
  435.  EvaP.pm(2)
  436.  evap.tcl(2)
  437.  evap_pac(2)
  438.  addmm, add_message_modules(1)
  439.  disci, display_command_information(1)
  440.  genmp, generate_man_page(1)
  441.  genpdt, generate_pdt(1)
  442.  genPerlTk, generate_PerlTk_program(1)
  443.  genTclTk, generate_TclTk_program(1)</PRE>
  444. <PRE>
  445.  All available from directory F<<A HREF="ftp://ftp.Lehigh.EDU:/pub/evap/evap-2.x/>">ftp://ftp.Lehigh.EDU:/pub/evap/evap-2.x/></A>;.</PRE>
  446. <P>
  447. <HR>
  448. <H1><A NAME="bugs">BUGS</A></H1>
  449. <P>The code is messy (written in Perl4-ese), and should be redone, but I
  450. can't rationalize the time expenditure for code that still works so well.</P>
  451. <P>
  452. <HR>
  453. <H1><A NAME="author">AUTHOR</A></H1>
  454. <P><A HREF="mailto:Stephen.O.Lidie@Lehigh.EDU">Stephen.O.Lidie@Lehigh.EDU</A></P>
  455. <P>
  456. <HR>
  457. <H1><A NAME="history">HISTORY</A></H1>
  458. <PRE>
  459.  lusol@Lehigh.EDU 94/10/28 (PDT version 2.0)  Version 2.2
  460.    . Original release - derived from evap.pl version 2.1.
  461.    . Undef option values for subsequent embedded calls.</PRE>
  462. <PRE>
  463.  lusol@Lehigh.EDU 95/10/27 (PDT version 2.0)  Version 2.3.0
  464.    . Be a strict as possible.
  465.    . Revert to -h alias rather than -?.  (-? -?? -??? still available.)
  466.    . Move into Getopt class.
  467.    . Format for 80 columns (mostly).
  468.    . Optional third argument on EvaP call can be a reference to your own
  469.      %Options hash.  If specified, the variabes %Options, %options and 
  470.      $opt* are not used.</PRE>
  471. <PRE>
  472.  lusol@Lehigh.EDU 97/01/12 (PDT version 2.0)  Version 2.3.1
  473.    . Fix Makefile.PL so it behaves properly.  Convert nroff man data to pod
  474.      format.</PRE>
  475. <PRE>
  476.  Stephen.O.Lidie@Lehigh.EDU 98/01/14 (PDT version 2.0)  Version 2.3.2
  477.    . Incorporate Achim Bohnet's POD patch while updating for Win32.</PRE>
  478. <PRE>
  479.  Stephen.O.Lidie@Lehigh.EDU 98/07/25 (PDT version 2.0)  Version 2.3.3
  480.    . Update Makefile.PL so it works in the standard fashion.
  481.    . Update for perl 5.005 and Tk 800.008.
  482.    . Remove use of ENGLISH.
  483.    . Add genpTk to generate a Perl/TK GUI wrapper around command line
  484.      programs.  Primarily for users of EvaP(), can be used by other codes
  485.      as well.</PRE>
  486. <PRE>
  487.  Stephen.O.Lidie@Lehigh.EDU 99/04/03 (PDT version 2.0)  Version 2.3.5
  488.    . Update Makefile.PL for ActiveState, fix a -w message found by 5.005_03.</PRE>
  489. <P>
  490. <HR>
  491. <H1><A NAME="copyright">COPYRIGHT</A></H1>
  492. <P>Copyright (C) 1993 - 1999 Stephen O. Lidie. All rights reserved.</P>
  493. <P>This program is free software; you can redistribute it and/or modify it under
  494. the same terms as Perl itself.</P>
  495. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  496. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  497. <STRONG><P CLASS=block> Getopt::EvaP - evaluate Perl command line parameters.</P></STRONG>
  498. </TD></TR>
  499. </TABLE>
  500.  
  501. </BODY>
  502.  
  503. </HTML>
  504.