Always somthing new.
Well I was just cleaning up a few things in some very old code this AM and I noticed this
Use Config;
die "chown not available!" unless $Config{"chown"};
and a number of similar lines checking for what I though would be 'core' functions, (like I said this was an old piece of code).
What caught my eye was the 'Config' mod never run into that one before so I had a quick read. I quickly determined that all perl programmers will use this module in onlyu one of three ways
- Never have a need for or even look at it or
- Use all the time and sleep more soudly because of it or
- Have a look at, play with until you corrupt your perl and then never play with again
Well I defiantly a solid '3' so I spend a few mins playing around and I tried this
use Config;
foreach (sort keys(%Config)){
print "$_ : $Config{$_}\n"
}
This gave me this big ass list;
Author :
CONFIG : true
Date : $Date
Header :
Id : $Id
Locker :
Log : $Log
PATCHLEVEL : 14
PERL_API_REVISION : 5
PERL_API_SUBVERSION : 0
PERL_API_VERSION : 14
...
zcat :
zip : zip
Of course there is lots of interesting stuff to be found in this list. What I should of done was read a little further along before I wrote the above as all I really needed to to was
print Config::config_sh();
and got the same result. Oh well a few extra minutes of coding never hurt anyone.
Well I did like'
print Config::myconfig()
as that is the same as a 'perl -V' with out the path and lib info. I could see that one coming in handy someday as I would be good to check a few things when writing tests so one can skip or run separate tests.
The real serendipitous one for me today was that I could get info on the 'sig_name' and 'sig_number' of the installed perl from my big ass list. You see I have just started working on a module that will be making use of a little 'POSIX' programming. One thing I know is I will have to get it working in both Linux and Windows so this may come in handy when I go to write up some tests.
Well to the sys-admin programmer or those doing large scale configuration I could really see the use of this module and I guess it has been around forever I just never ran across it directly.
Always learning something new even in my old age.
'perldoc Config' will give you more information (than you'll probably ever need) :)
Config has its uses. The two things I've used it most for are: determining the system's C compiler (
$Config{cc}
) and checking if Perl has been built with thread support ($Config{useithreads}
).`$Config{osname}` is quite valuable as well of course (especially in code that would otherwise assume it's running on some form of unix).