home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl_mlb.zip / newgetopt.pl < prev    next >
Text File  |  1997-11-25  |  2KB  |  69 lines

  1. # newgetopt.pl -- new options parsing.
  2. # Now just a wrapper around the Getopt::Long module.
  3. # $Id: newgetopt.pl,v 1.17 1996-10-02 11:17:16+02 jv Exp $
  4.  
  5. {   package newgetopt;
  6.  
  7.     # Values for $order. See GNU getopt.c for details.
  8.     $REQUIRE_ORDER = 0;
  9.     $PERMUTE = 1;
  10.     $RETURN_IN_ORDER = 2;
  11.  
  12.     # Handle POSIX compliancy.
  13.     if ( defined $ENV{"POSIXLY_CORRECT"} ) {
  14.     $autoabbrev = 0;    # no automatic abbrev of options (???)
  15.     $getopt_compat = 0;    # disallow '+' to start options
  16.     $option_start = "(--|-)";
  17.     $order = $REQUIRE_ORDER;
  18.     $bundling = 0;
  19.     $passthrough = 0;
  20.     }
  21.     else {
  22.     $autoabbrev = 1;    # automatic abbrev of options
  23.     $getopt_compat = 1;    # allow '+' to start options
  24.     $option_start = "(--|-|\\+)";
  25.     $order = $PERMUTE;
  26.     $bundling = 0;
  27.     $passthrough = 0;
  28.     }
  29.  
  30.     # Other configurable settings.
  31.     $debug = 0;            # for debugging
  32.     $ignorecase = 1;        # ignore case when matching options
  33.     $argv_end = "--";        # don't change this!
  34. }
  35.  
  36. use Getopt::Long;
  37.  
  38. ################ Subroutines ################
  39.  
  40. sub NGetOpt {
  41.  
  42.     $Getopt::Long::debug = $newgetopt::debug 
  43.     if defined $newgetopt::debug;
  44.     $Getopt::Long::autoabbrev = $newgetopt::autoabbrev 
  45.     if defined $newgetopt::autoabbrev;
  46.     $Getopt::Long::getopt_compat = $newgetopt::getopt_compat 
  47.     if defined $newgetopt::getopt_compat;
  48.     $Getopt::Long::option_start = $newgetopt::option_start 
  49.     if defined $newgetopt::option_start;
  50.     $Getopt::Long::order = $newgetopt::order 
  51.     if defined $newgetopt::order;
  52.     $Getopt::Long::bundling = $newgetopt::bundling 
  53.     if defined $newgetopt::bundling;
  54.     $Getopt::Long::ignorecase = $newgetopt::ignorecase 
  55.     if defined $newgetopt::ignorecase;
  56.     $Getopt::Long::ignorecase = $newgetopt::ignorecase 
  57.     if defined $newgetopt::ignorecase;
  58.     $Getopt::Long::passthrough = $newgetopt::passthrough 
  59.     if defined $newgetopt::passthrough;
  60.  
  61.     &GetOptions;
  62. }
  63.  
  64. ################ Package return ################
  65.  
  66. 1;
  67.  
  68. ################ End of newgetopt.pl ################
  69.