Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10245[/thread]

Geeignetes Modul Konfigurationsfile

Leser: 1


<< >> 4 Einträge, 1 Seite
styx-cc
 2007-08-28 18:43
#98787 #98787
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Hallo, ich suche gerade nach einem geeignetem Modul um meine Konfiguration zu erstellen/auszulesen, das Config-File sieht in etwa wie folgt aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#configuration file for the image-sorter program

#language
lang=de

#start program in full screen mode
fullscreen=0

#different image categories
[categories]
katergorie eins
kategorie zwei
.
.
[/categories]

#different source directories
[sources]
/home/user/bilder/urlaub
/home/user/bilder/party
/home/user/bilder/privat
[/sources]

[destinations]
.
.
[/destinations]

# usw. usf.


Ich hab mir mal Config::INI::Simple angeschaut und auch YAML, allerdings scheint Config::INI::Simple nicht das herzugeben, was ich mir wuensche (es koennen z.B. beliebig viele Kategorien erstellt werden) da ich nicht weiß wie ich auf nicht benannte Elemente zugreifen kann und YAML scheint mir hoffnungslos ueberdimensioniert, vielleicht hat ja einer von euch einen Rat fuer mich =)

MfG

edit: die Konfigurationsdatei kann ich nach Belieben umbauen, sie soll halt nur das hergeben was ich oben beschrieben habe
Pörl.
GwenDragon
 2007-08-28 19:09
#98788 #98788
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Wie wäre es mit CPAN:Config::General
Die Werte sind beim Einlesen dann in einem Hash.

Du müssetst nur ein ganz klein bisschen dein Konfigurationsdatei ändern, also statt [ ] die < > als "Abschnitt" verwenden.
styx-cc
 2007-08-28 22:11
#98794 #98794
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Hmm... das sieht ja schon mal ganz gut aus, danke!

Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl -w
use strict;
use Config::General;

my $conf = new Config::General('conf/default.conf');
my %config = $conf->getall;

print "$config{'categories'}{1}\n";


Wenn ich jetzt allerdings auf das erste (von mir aus ist die 1 in dem Hashaufruf auch das zweite) Element zugreifen moechte, bin ich trotzdem gezwungen das so zu schreiben:

Code: (dl )
1
2
3
4
5
6
7
#different image categories
<categories>
1=katergorie eins
2=kategorie zwei
.
.
</categories>


Also mit
1=xy
2=xy

oder gibts da nen Weg um direkt das n-te Element aus einem Block zu lesen? Sonst haette ich das ja auch mit Config::INI::Simple geloest bekommen..

MfG
Pörl.
Struppi
 2007-08-29 12:54
#98811 #98811
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Also ich nutze meistens CPAN:Config::IniFiles das dürfte in etwa das machen was du willst.
<< >> 4 Einträge, 1 Seite



View all threads created 2007-08-28 18:43.