Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Reading from an INI file

by mothra (Hermit)
on May 15, 2001 at 18:50 UTC ( #80546=note: print w/replies, xml ) Need Help??


in reply to Reading from an INI file

Before you reinvent the wheel (and make all the same mistakes that somebody else already has along the way), you may well be better off using Config::IniFiles.

HTH!

Replies are listed 'Best First'.
Re: Re: Reading from an INI file
by frag (Hermit) on May 15, 2001 at 20:58 UTC
    And if you're using Perl on a Windows OS, as an alternative to Config::IniFiles I recommend that you look into Dave Roth's really useful Win32::AdminMisc module. It includes a ReadINI (and a WriteINI) function that "understands" section dividers, and ignores lines commented out with semi-colons. There's online documentation at http://www.roth.net/perl/adminmisc/, but here's an example of how it could be used:
    foreach my $section (Win32::AdminMisc::ReadINI ('some.ini', '', '')) { foreach my $key (Win32::AdminMisc::ReadINI ('some.ini', $section, '')) { my $value = Win32::AdminMisc::ReadINI ('some.ini', $section, $key); } }
    (Note: if you want to use AdminMisc, either use PPM (if you're using ActiveState), or else use the links at Roth's site. It's on CPAN but http://search.cpan.org for some reason doesn't return a match.)

    Finally, in the book Data Munging in Perl (written by davorg), there's a longish discussion about using the high-powered Parse::RecDescent module for parsing INI files.

    -- Frag.

Re: Re: Reading from an INI file
by suaveant (Parson) on May 15, 2001 at 18:59 UTC
    But, you do learn a lot reinventing the wheel, sometimes it is good to write it out... especially short things like this.

    Of course, reusable code is always a Good Thing too :)
                    - Ant

      But, you do learn a lot reinventing the wheel, sometimes it is good to write it out...

      True, but there are many more problems that people either a.) haven't solved, b.) have solved poorly and so could be solved in a better way. For a more thorough understanding of why one shouldn't reinvent the wheel, look here.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://80546]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2022-05-29 11:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (101 votes). Check out past polls.

    Notices?