Config(3)

Config(3)

Concat Home Page Subroutines Index ConfigWidg


NNAAMMEE
       Config - access Perl configuration information

SSYYNNOOPPSSIISS
           use Config;
           if ($Config{'cc'} =~ /gcc/) {
               print "built by gcc\n";
           }

           use Config qw(myconfig config_sh config_vars);

           print myconfig();

           print config_sh();

           config_vars(qw(osname archname));

DDEESSCCRRIIPPTTIIOONN
       The Config module contains all the information that was
       available to the Configure program at Perl build time
       (over 900 values).

       Shell variables from the config.sh file (written by
       Configure) are stored in the readonly-variable %Config,
       indexed by their names.

       Values stored in config.sh as 'undef' are returned as
       undefined values.  The perl exists function can be used to
       check if a named variable exists.

       myconfig()
           Returns a textual summary of the major perl
           configuration values.  See also -V in the Switches
           entry in the perlrun manpage.

       config_sh()
           Returns the entire perl configuration information in
           the form of the original config.sh shell variable
           assignment script.

       config_vars(@names)
           Prints to STDOUT the values of the named configuration
           variable. Each is printed on a separate line in the
           form:

             name='value';

           Names which are unknown are output as name='UNKNOWN';.
           See also -V:name in the Switches entry in the perlrun
           manpage.

EEXXAAMMPPLLEE
       Here's a more sophisticated example of using %Config:

           use Config;
           use strict;

           my %sig_num;
           my @sig_name;
           unless($Config{sig_name} && $Config{sig_num}) {
               die "No sigs?";
           } else {
               my @names = split ' ', $Config{sig_name};
               @sig_num{@names} = split ' ', $Config{sig_num};
               foreach (@names) {
                   $sig_name[$sig_num{$_}] ||= $_;
               }
           }

           print "signal #17 = $sig_name[17]\n";
           if ($sig_num{ALRM}) {
               print "SIGALRM is $sig_num{ALRM}\n";
           }

WWAARRNNIINNGG
       Because this information is not stored within the perl
       executable itself it is possible (but unlikely) that the
       information does not relate to the actual perl binary
       which is being used to access it.

       The Config module is installed into the architecture and
       version specific library directory
       ($Config{installarchlib}) and it checks the perl version
       number when loaded.

NNOOTTEE
       This module contains a good example of how to use tie to
       implement a cache and an example of how to make a tied
       variable readonly to those outside of it.

Concat Home Page Subroutines Index ConfigWidg