Hi there!!!, this is how I usually do it, hmmm
but without the error checking here ;))
sub ReadConfig($)
{
my $ConfigFile=shift;
my %Config;
my $Item;
open CONFIG,"<$ConfigFile" or return %Config;
while(<CONFIG>)
{
chomp;
next if ((/^#/)||(/^\s*$/));
# Yeah, I'm sorry for the .* here...
if (/^\[(.*)\]$/) {$Item=$1;next;};
if($Item)
{
my ($SubOption,$Value)=split /\=/;
if ($Value)
{
push @{$Config{$Item}{$SubOption}},$Value;
}
else push @{$Config{$Item}},$_;
};
};
close CONFIG;
return(%Config);
};
Anyways.. this is close to how I do it, this code not tested 'n stuff
GrtZ!
ChOas
Upd. Oh yeah, I usually read the config as quick as possible,
and do the error/sanity checking in another sub, dunno why,
but it gives me kinda clean code, I like that...
Even though I'm Lazy ;))
Upd2.
Just to clear things up, this will ofcourse leave you with
a hash something like this:
$Config{'parm commands'}
|-{'snmp-server community RO'} eq 'notpublic';
|-{'timeout'}==10;
@{$Config{'no snmp-server community'}}=>(public,private,secret,bogus);
Hope it helps....
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.