[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/CPANPLUS/ -> Config.pm (source)

   1  package CPANPLUS::Config;
   2  
   3  use strict;
   4  use warnings;
   5  
   6  use base 'Object::Accessor';
   7  
   8  use base 'CPANPLUS::Internals::Utils';
   9  
  10  use Config;
  11  use File::Spec;
  12  use Module::Load;
  13  use CPANPLUS;
  14  use CPANPLUS::Error;
  15  use CPANPLUS::Internals::Constants;
  16  
  17  use File::Basename              qw[dirname];
  18  use IPC::Cmd                    qw[can_run];
  19  use Locale::Maketext::Simple    Class => 'CPANPLUS', Style => 'gettext';
  20  use Module::Load::Conditional   qw[check_install];
  21  
  22  
  23  =pod
  24  
  25  =head1 NAME
  26  
  27  CPANPLUS::Config
  28  
  29  =head1 DESCRIPTION
  30  
  31  This module contains defaults and heuristics for configuration 
  32  information for CPANPLUS. To change any of these values, please
  33  see the documentation in C<CPANPLUS::Configure>.
  34  
  35  Below you'll find a list of configuration types and keys, and
  36  their meaning.
  37  
  38  =head1 CONFIGURATION
  39  
  40  =cut
  41  
  42  ### BAH! you can't have POD interleaved with a hash
  43  ### declaration.. so declare every entry seperatedly :(
  44  my $Conf = {
  45      '_fetch' => {
  46          'blacklist' => [ 'ftp' ],
  47      },
  48      
  49      ### _source, _build and _mirror are supposed to be static
  50      ### no changes should be needed unless pause/cpan changes
  51      '_source' => {
  52          'hosts'             => 'MIRRORED.BY',
  53          'auth'              => '01mailrc.txt.gz',
  54          'stored'            => 'sourcefiles',
  55          'dslip'             => '03modlist.data.gz',
  56          'update'            => '86400',
  57          'mod'               => '02packages.details.txt.gz',
  58          'custom_index'      => 'packages.txt',
  59      },
  60      '_build' => {
  61          'plugins'           => 'plugins',
  62          'moddir'            => 'build',
  63          'startdir'          => '',
  64          'distdir'           => 'dist',
  65          'autobundle'        => 'autobundle',
  66          'autobundle_prefix' => 'Snapshot',
  67          'autdir'            => 'authors',
  68          'install_log_dir'   => 'install-logs',
  69          'custom_sources'    => 'custom-sources',
  70          'sanity_check'      => 1,
  71      },
  72      '_mirror' => {
  73          'base'              => 'authors/id/',
  74          'auth'              => 'authors/01mailrc.txt.gz',
  75          'dslip'             => 'modules/03modlist.data.gz',
  76          'mod'               => 'modules/02packages.details.txt.gz'
  77      },
  78  };
  79  
  80  =head2 Section 'conf'
  81  
  82  =over 4
  83  
  84  =item hosts
  85  
  86  An array ref containing hosts entries to be queried for packages.
  87  
  88  An example entry would like this:
  89  
  90      {   'scheme' => 'ftp',
  91          'path' => '/pub/CPAN/',
  92          'host' => 'ftp.cpan.org'
  93      },
  94  
  95  =cut
  96  
  97      ### default host list
  98      $Conf->{'conf'}->{'hosts'} = [
  99              {
 100                  'scheme' => 'ftp',
 101                  'path' => '/pub/CPAN/',
 102                  'host' => 'ftp.cpan.org'
 103              },
 104              {
 105                  'scheme' => 'http',
 106                  'path' => '/',
 107                  'host' => 'www.cpan.org'
 108              },
 109              {
 110                  'scheme' => 'ftp',
 111                  'path' => '/pub/CPAN/',
 112                  'host' => 'ftp.nl.uu.net'
 113              },
 114              {
 115                  'scheme' => 'ftp',
 116                  'path' => '/pub/CPAN/',
 117                  'host' => 'cpan.valueclick.com'
 118              },
 119              {
 120                  'scheme' => 'ftp',
 121                  'path' => '/pub/languages/perl/CPAN/',
 122                  'host' => 'ftp.funet.fi'
 123              }
 124          ];
 125          
 126  =item allow_build_interactivity
 127  
 128  Boolean flag to indicate whether 'perl Makefile.PL' and similar
 129  are run interactively or not. Defaults to 'true'.
 130  
 131  =cut
 132  
 133          $Conf->{'conf'}->{'allow_build_interactivity'} = 1;
 134  
 135  =item base
 136  
 137  The directory CPANPLUS keeps all it's build and state information in.
 138  Defaults to ~/.cpanplus.
 139  
 140  =cut
 141  
 142         $Conf->{'conf'}->{'base'} = File::Spec->catdir(
 143                                          __PACKAGE__->_home_dir, DOT_CPANPLUS );
 144  
 145  =item buildflags
 146  
 147  Any flags to be passed to 'perl Build.PL'. See C<perldoc Module::Build>
 148  for details. Defaults to an empty string.
 149  
 150  =cut
 151  
 152          $Conf->{'conf'}->{'buildflags'} = '';
 153  
 154  =item cpantest
 155  
 156  Boolean flag to indicate whether or not to mail test results of module
 157  installations to C<http://testers.cpan.org>. Defaults to 'false'.
 158  
 159  =cut
 160  
 161          $Conf->{'conf'}->{'cpantest'} = 0;
 162  
 163  =item cpantest_mx
 164  
 165  String holding an explicit mailserver to use when sending out emails
 166  for C<http://testers.cpan.org>. An empty string will use your system
 167  settings. Defaults to an empty string.
 168  
 169  =cut
 170  
 171          $Conf->{'conf'}->{'cpantest_mx'} = '';
 172  
 173  =item debug
 174  
 175  Boolean flag to enable or disable extensive debuggging information.
 176  Defaults to 'false'.
 177  
 178  =cut
 179  
 180          $Conf->{'conf'}->{'debug'} = 0;
 181  
 182  =item dist_type
 183  
 184  Default distribution type to use when building packages. See C<cpan2dist>
 185  or C<CPANPLUS::Dist> for details. An empty string will not use any 
 186  package building software. Defaults to an empty string.
 187  
 188  =cut
 189  
 190          $Conf->{'conf'}->{'dist_type'} = '';
 191  
 192  =item email
 193  
 194  Email address to use for anonymous ftp access and as C<from> address
 195  when sending emails. Defaults to an C<example.com> address.
 196  
 197  =cut
 198  
 199          $Conf->{'conf'}->{'email'} = DEFAULT_EMAIL;
 200  
 201  =item extractdir
 202  
 203  String containing the directory where fetched archives should be 
 204  extracted. An empty string will use a directory under your C<base>
 205  directory. Defaults to an empty string.
 206  
 207  =cut
 208  
 209          $Conf->{'conf'}->{'extractdir'} = '';
 210  
 211  =item fetchdir
 212  
 213  String containing the directory where fetched archives should be 
 214  stored. An empty string will use a directory under your C<base>
 215  directory. Defaults to an empty string.
 216  
 217  =cut
 218  
 219          $Conf->{'conf'}->{'fetchdir'} = '';
 220  
 221  =item flush
 222  
 223  Boolean indicating whether build failures, cache dirs etc should
 224  be flushed after every operation or not. Defaults to 'true'.
 225  
 226  =cut
 227  
 228          $Conf->{'conf'}->{'flush'} = 1;
 229  
 230  =item force
 231  
 232  Boolean indicating whether files should be forcefully overwritten
 233  if they exist, modules should be installed when they fail tests,
 234  etc. Defaults to 'false'.
 235  
 236  =cut
 237  
 238          $Conf->{'conf'}->{'force'} = 0;
 239  
 240  =item lib
 241  
 242  An array ref holding directories to be added to C<@INC> when CPANPLUS
 243  starts up. Defaults to an empty array reference.
 244  
 245  =cut
 246  
 247          $Conf->{'conf'}->{'lib'} = [];
 248  
 249  =item makeflags
 250  
 251  A string holding flags that will be passed to the C<make> program
 252  when invoked. Defaults to an empty string.
 253  
 254  =cut
 255  
 256          $Conf->{'conf'}->{'makeflags'} = '';
 257  
 258  =item makemakerflags
 259  
 260  A string holding flags that will be passed to C<perl Makefile.PL>
 261  when invoked. Defaults to an empty string.
 262  
 263  =cut
 264  
 265          $Conf->{'conf'}->{'makemakerflags'} = '';
 266  
 267  =item md5
 268  
 269  A boolean indicating whether or not md5 checks should be done when
 270  an archive is fetched. Defaults to 'true' if you have C<Digest::MD5>
 271  installed, 'false' otherwise.
 272  
 273  =cut
 274  
 275          $Conf->{'conf'}->{'md5'} = ( 
 276                              check_install( module => 'Digest::MD5' ) ? 1 : 0 );
 277  
 278  =item no_update
 279  
 280  A boolean indicating whether or not C<CPANPLUS>' source files should be
 281  updated or not. Defaults to 'false'.
 282  
 283  =cut
 284  
 285          $Conf->{'conf'}->{'no_update'} = 0;
 286  
 287  =item passive
 288  
 289  A boolean indicating whether or not to use passive ftp connections.
 290  Defaults to 'true'.
 291  
 292  =cut
 293  
 294          $Conf->{'conf'}->{'passive'} = 1;
 295  
 296  =item prefer_bin
 297  
 298  A boolean indicating whether or not to prefer command line programs 
 299  over perl modules. Defaults to 'false' unless you do not have 
 300  C<Compress::Zlib> installed (as that would mean we could not extract
 301  C<.tar.gz> files)
 302  
 303  =cut
 304          ### if we dont have c::zlib, we'll need to use /bin/tar or we
 305          ### can not extract any files. Good time to change the default
 306          $Conf->{'conf'}->{'prefer_bin'} = 
 307                                  (eval {require Compress::Zlib; 1} ? 0 : 1 );
 308  
 309  =item prefer_makefile
 310  
 311  A boolean indicating whether or not prefer a C<Makefile.PL> over a 
 312  C<Build.PL> file if both are present. Defaults to 'true'.
 313  
 314  =cut
 315  
 316          $Conf->{'conf'}->{'prefer_makefile'} = 1;
 317  
 318  =item prereqs
 319  
 320  A digit indicating what to do when a package you are installing has a
 321  prerequisite. Options are:
 322  
 323      0   Do not install
 324      1   Install
 325      2   Ask
 326      3   Ignore  (dangerous, install will probably fail!)
 327  
 328  The default is to ask.
 329  
 330  =cut
 331  
 332          $Conf->{'conf'}->{'prereqs'} = PREREQ_ASK;
 333  
 334  =item shell
 335  
 336  A string holding the shell class you wish to start up when starting
 337  C<CPANPLUS> in interactive mode.
 338  
 339  Defaults to C<CPANPLUS::Shell::Default>, the default CPANPLUS shell.
 340  
 341  =cut
 342  
 343          $Conf->{'conf'}->{'shell'} = 'CPANPLUS::Shell::Default';
 344  
 345  =item show_startup_tip
 346  
 347  A boolean indicating whether or not to show start up tips in the 
 348  interactive shell. Defaults to 'true'.
 349  
 350  =cut
 351  
 352          $Conf->{'conf'}->{'show_startup_tip'} = 1;
 353  
 354  =item signature
 355  
 356  A boolean indicating whether or not check signatures if packages are
 357  signed. Defaults to 'true' if you have C<gpg> or C<Crypt::OpenPGP> 
 358  installed, 'false' otherwise.
 359  
 360  =cut
 361  
 362          $Conf->{'conf'}->{'signature'} = do {
 363              check_install( module => 'Module::Signature', version => '0.06' )
 364              and ( can_run('gpg') || 
 365                    check_install(module => 'Crypt::OpenPGP')
 366              );
 367          } ? 1 : 0;
 368  
 369  =item skiptest
 370  
 371  A boolean indicating whether or not to skip tests when installing modules.
 372  Defaults to 'false'.
 373  
 374  =cut
 375  
 376          $Conf->{'conf'}->{'skiptest'} = 0;
 377  
 378  =item storable
 379  
 380  A boolean indicating whether or not to use C<Storable> to write compiled
 381  source file information to disk. This makes for faster startup and look
 382  up times, but takes extra diskspace. Defaults to 'true' if you have 
 383  C<Storable> installed and 'false' if you don't.
 384  
 385  =cut
 386  
 387         $Conf->{'conf'}->{'storable'} = 
 388                          ( check_install( module => 'Storable' ) ? 1 : 0 );
 389  
 390  =item timeout
 391  
 392  Digit indicating the time before a fetch request times out (in seconds).
 393  Defaults to 300.
 394  
 395  =cut
 396  
 397          $Conf->{'conf'}->{'timeout'} = 300;
 398  
 399  =item verbose
 400  
 401  A boolean indicating whether or not C<CPANPLUS> runs in verbose mode.
 402  Defaults to 'true' if you have the environment variable 
 403  C<PERL5_CPANPLUS_VERBOSE> set to true, 'false' otherwise.
 404  
 405  It is recommended you run with verbose enabled, but it is disabled
 406  for historical reasons.
 407  
 408  =cut
 409  
 410          $Conf->{'conf'}->{'verbose'} = $ENV{PERL5_CPANPLUS_VERBOSE} || 0;
 411  
 412  =item write_install_log
 413  
 414  A boolean indicating whether or not to write install logs after installing
 415  a module using the interactive shell. Defaults to 'true'.
 416  
 417  
 418  =cut
 419  
 420          $Conf->{'conf'}->{'write_install_logs'} = 1;
 421  
 422  =back
 423      
 424  =head2 Section 'program'
 425  
 426  =cut
 427  
 428      ### Paths get stripped of whitespace on win32 in the constructor
 429      ### sudo gets emptied if there's no need for it in the constructor
 430  
 431  =over 4
 432  
 433  =item editor
 434  
 435  A string holding the path to your editor of choice. Defaults to your
 436  $ENV{EDITOR}, $ENV{VISIUAL}, 'vi' or 'pico' programs, in that order.
 437  
 438  =cut
 439  
 440          $Conf->{'program'}->{'editor'} = do {
 441              $ENV{'EDITOR'}  || $ENV{'VISUAL'} ||
 442              can_run('vi')   || can_run('pico')
 443          };
 444  
 445  =item make
 446  
 447  A string holding the path to your C<make> binary. Looks for the C<make>
 448  program used to build perl or failing that, a C<make> in your path.
 449  
 450  =cut
 451  
 452          $Conf->{'program'}->{'make'} = 
 453              can_run($Config{'make'}) || can_run('make');
 454  
 455  =item pager
 456  
 457  A string holding the path to your pager of choice. Defaults to your
 458  $ENV{PAGER}, 'less' or 'more' programs, in that order.
 459  
 460  =cut
 461  
 462          $Conf->{'program'}->{'pager'} = 
 463              $ENV{'PAGER'} || can_run('less') || can_run('more');
 464  
 465          ### no one uses this feature anyway, and it's only working for EU::MM
 466          ### and not for module::build
 467          #'perl'      => '',
 468  
 469  =item shell
 470  
 471  A string holding the path to your login shell of choice. Defaults to your
 472  $ENV{SHELL} setting, or $ENV{COMSPEC} on Windows.
 473  
 474  =cut
 475  
 476          $Conf->{'program'}->{'shell'} = $^O eq 'MSWin32' 
 477                                          ? $ENV{COMSPEC} 
 478                                          : $ENV{SHELL};
 479  
 480  =item sudo
 481  
 482  A string holding the path to your C<sudo> binary if your install path
 483  requires super user permissions. Looks for C<sudo> in your path, or 
 484  remains empty if you do not require super user permissiosn to install.
 485  
 486  =cut
 487  
 488          $Conf->{'program'}->{'sudo'} = do {
 489  
 490              ### let's assume you dont need sudo,
 491              ### unless one of the below criteria tells us otherwise
 492              my $sudo = undef;
 493              
 494              ### you're a normal user, you might need sudo
 495              if( $> ) {
 496      
 497                  ### check for all install dirs!
 498                  ### installsiteman3dir is a 5.8'ism.. don't check
 499                  ### it on 5.6.x...            
 500                  ### you have write permissions to the installdir,
 501                  ### you don't need sudo
 502                  if( -w $Config{'installsitelib'} &&
 503                      ( defined $Config{'installsiteman3dir'} && 
 504                        -w $Config{'installsiteman3dir'} 
 505                      ) && -w $Config{'installsitebin'} 
 506                  ) {                    
 507                      $sudo = undef;
 508                      
 509                  ### you have PERL_MM_OPT set to some alternate
 510                  ### install place. You probably have write permissions
 511                  ### to that
 512                  } elsif ( $ENV{'PERL_MM_OPT'} and 
 513                            $ENV{'PERL_MM_OPT'} =~ /INSTALL|LIB|PREFIX/
 514                  ) {
 515                      $sudo = undef;
 516  
 517                  ### you probably don't have write permissions
 518                  } else {                
 519                      $sudo = can_run('sudo');
 520                  }
 521              }  
 522              
 523              ### and return the value
 524              $sudo;
 525          };
 526  
 527  =item perlwrapper
 528  
 529  A string holding the path to the C<cpanp-run-perl> utility bundled
 530  with CPANPLUS, which is used to enable autoflushing in spawned processes.
 531  
 532  =cut
 533  
 534          ### perlwrapper that allows us to turn on autoflushing                        
 535          $Conf->{'program'}->{'perlwrapper'} = sub { 
 536              my $name = 'cpanp-run-perl';
 537  
 538              my @bins = do{
 539                  require Config;
 540                  my $ver  = $Config::Config{version};
 541                  
 542                  ### if we are running with 'versiononly' enabled,
 543                  ### all binaries will have the perlversion appended
 544                  ### ie, cpanp will become cpanp5.9.5
 545                  ### so prefer the versioned binary in that case
 546                  $Config::Config{versiononly}
 547                          ? ($name.$ver, $name)
 548                          : ($name, $name.$ver);
 549              };
 550  
 551              ### patch from Steve Hay Fri 29 Jun 2007 14:26:02 GMT+02:00
 552              ### Msg-Id: <4684FA5A.7030506@uk.radan.com>
 553              ### look for files with a ".bat" extension as well on Win32
 554              @bins = map { $_, "$_.bat" } @bins if $^O eq 'MSWin32';
 555  
 556              my $path;
 557              BIN: for my $bin (@bins) {
 558                  
 559                  ### parallel to your cpanp/cpanp-boxed
 560                  my $maybe = File::Spec->rel2abs(
 561                                  File::Spec->catfile( dirname($0), $bin )
 562                              );        
 563                  $path = $maybe and last BIN if -f $maybe;
 564          
 565                  ### parallel to your CPANPLUS.pm:
 566                  ### $INC{cpanplus}/../bin/cpanp-run-perl
 567                  $maybe = File::Spec->rel2abs(
 568                              File::Spec->catfile( 
 569                                  dirname($INC{'CPANPLUS.pm'}),
 570                                  '..',   # lib dir
 571                                  'bin',  # bin dir
 572                                  $bin,   # script
 573                              )
 574                           );
 575                  $path = $maybe and last BIN if -f $maybe;
 576                           
 577                  ### you installed CPANPLUS in a custom prefix,
 578                  ### so go paralel to /that/. PREFIX=/tmp/cp
 579                  ### would put cpanp-run-perl in /tmp/cp/bin and
 580                  ### CPANPLUS.pm in
 581                  ### /tmp/cp/lib/perl5/site_perl/5.8.8
 582                  $maybe = File::Spec->rel2abs(
 583                              File::Spec->catfile( 
 584                                  dirname( $INC{'CPANPLUS.pm'} ),
 585                                  '..', '..', '..', '..', # 4x updir
 586                                  'bin',                  # bin dir
 587                                  $bin,                   # script
 588                              )
 589                           );
 590                  $path = $maybe and last BIN if -f $maybe;
 591  
 592                  ### in your path -- take this one last, the
 593                  ### previous two assume extracted tarballs
 594                  ### or user installs
 595                  ### note that we don't use 'can_run' as it's
 596                  ### not an executable, just a wrapper...
 597                  ### prefer anything that's found in the path paralel to your $^X
 598                  for my $dir (File::Spec->rel2abs( dirname($^X) ),
 599                               split(/\Q$Config::Config{path_sep}\E/, $ENV{PATH}),
 600                               File::Spec->curdir, 
 601                  ) {             
 602  
 603                      ### On VMS the path could be in UNIX format, and we
 604                      ### currently need it to be in VMS format
 605                      $dir = VMS::Filespec::vmspath($dir) if ON_VMS;
 606  
 607                      $maybe = File::Spec->catfile( $dir, $bin );
 608                      $path = $maybe and last BIN if -f $maybe;
 609                  }
 610              }          
 611                  
 612              ### we should have a $path by now ideally, if so return it
 613              return $path if defined $path;
 614              
 615              ### if not, warn about it and give sensible default.
 616              ### XXX try to be a no-op instead then.. 
 617              ### cross your fingers...
 618              ### pass '-P' to perl: "run program through C 
 619              ### preprocessor before compilation"
 620              ### XXX using -P actually changes the way some Makefile.PLs
 621              ### are executed, so don't do that... --kane
 622              error(loc(
 623                  "Could not find the '%1' binary in your path".
 624                  "--this may be a problem.\n".
 625                  "Please locate this program and set ".
 626                  "your '%2' config entry to its path.\n".
 627                  "From the default shell, you can do this by typing:\n\n".
 628                  "  %3\n".
 629                  "  %4\n",
 630                  $name, 'perlwrapper', 
 631                  's program perlwrapper FULL_PATH_TO_CPANP_RUN_PERL',
 632                  's save'
 633               ));                                        
 634               return '';
 635          }->();
 636          
 637  =back
 638  
 639  =cut
 640  
 641  sub new {
 642      my $class   = shift;
 643      my $obj     = $class->SUPER::new;
 644  
 645      $obj->mk_accessors( keys %$Conf );
 646  
 647      for my $acc ( keys %$Conf ) {
 648          my $subobj = Object::Accessor->new;
 649          $subobj->mk_accessors( keys %{$Conf->{$acc}} );
 650  
 651          ### read in all the settings from the sub accessors;
 652          for my $subacc ( $subobj->ls_accessors ) {
 653              $subobj->$subacc( $Conf->{$acc}->{$subacc} );
 654          }
 655  
 656          ### now store it in the parent object
 657          $obj->$acc( $subobj );
 658      }
 659      
 660      $obj->_clean_up_paths;
 661      
 662      ### shut up IPC::Cmd warning about not findin IPC::Run on win32
 663      $IPC::Cmd::WARN = 0;
 664      
 665      return $obj;
 666  }
 667  
 668  sub _clean_up_paths {
 669      my $self = shift;
 670  
 671      ### clean up paths if we are on win32
 672      if( $^O eq 'MSWin32' ) {
 673          for my $pgm ( $self->program->ls_accessors ) {
 674              my $path = $self->program->$pgm;
 675  
 676              ### paths with whitespace needs to be shortened
 677              ### for shell outs.
 678              if ($path and $path =~ /\s+/) {
 679                  my($prog, $args);
 680  
 681                  ### patch from Steve Hay, 13nd of June 2007
 682                  ### msg-id: <467012A4.6060705@uk.radan.com>
 683                  ### windows directories are not allowed to end with 
 684                  ### a space, so any occurrence of '\w\s+/\w+' means
 685                  ### we're dealing with arguments, not directory
 686                  ### names.
 687                  if ($path =~ /^(.*?)(\s+\/.*$)/) {
 688                      ($prog, $args) = ($1, $2);
 689                  
 690                  ### otherwise, there are no arguments
 691                  } else {
 692                      ($prog, $args) = ($path, '');
 693                  }
 694                  
 695                  $prog = Win32::GetShortPathName( $prog );
 696                  $self->program->$pgm( $prog . $args );
 697              }
 698          }
 699      }
 700  
 701      return 1;
 702  }
 703  
 704  1;
 705  
 706  =pod
 707  
 708  =head1 BUG REPORTS
 709  
 710  Please report bugs or other issues to E<lt>bug-cpanplus@rt.cpan.org<gt>.
 711  
 712  =head1 AUTHOR
 713  
 714  This module by Jos Boumans E<lt>kane@cpan.orgE<gt>.
 715  
 716  =head1 COPYRIGHT
 717  
 718  The CPAN++ interface (of which this module is a part of) is copyright (c) 
 719  2001 - 2007, Jos Boumans E<lt>kane@cpan.orgE<gt>. All rights reserved.
 720  
 721  This library is free software; you may redistribute and/or modify it 
 722  under the same terms as Perl itself.
 723  
 724  =head1 SEE ALSO
 725  
 726  L<CPANPLUS::Backend>, L<CPANPLUS::Configure::Setup>, L<CPANPLUS::Configure>
 727  
 728  =cut
 729  
 730  # Local variables:
 731  # c-indentation-style: bsd
 732  # c-basic-offset: 4
 733  # indent-tabs-mode: nil
 734  # End:
 735  # vim: expandtab shiftwidth=4:


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1