Schrift
[thread]7681[/thread]

Variablen zentral in einer ini Datei verwalten

Leser: 2


<< |< 1 2 >| >> 20 Einträge, 2 Seiten
leissi
 2006-02-07 15:35
#62669 #62669
User since
2005-07-06
84 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich möchte gewisse my Variablen in einer separaten main.ini verwalten.
Dazu habe ich eine main.ini Datei gebaut:
Quote
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#
# variablen/funktion zum steuern des scripts
#
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#
# Log-Pfad
$logPath="H:\\Perl\\BackupCheck\\output" ;


# Pfad zu OTA-Log-Dateien
$otaLogPath="H:\\Perl\\BackupCheck\\input\\OtaLog" ;

# Pfad zu BackupCheck- Dateien
$backupPath="H:\\Perl\\BackupCheck\\_backup" ;

#LogFilter
#Der LogFilter steuert die Feinheit der Logdatei-Einträge.
#Es gibt zwei Filtereinstellungen:
# DEBUG
# INFO
my $LogFilter = "DEBUG";


# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#
# ende variablen/funktion zum steuern des scripts
#
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# Subroutine1 BackupCheck Zeitstempel


Diese wird im Perlscript wie folgt geöffnet:
Quote
my $parameterFile = "input/Main.cfg";
open(IN, $parameterFile) || die "Paramterfile $parameterFile nicht gefunden!";
my @par = <IN>;


Leider werden die my Variablen nicht übergeben! Was mache ich falsch???

Gruss

Leissi
murphy
 2006-02-07 16:40
#62670 #62670
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
[quote=leissi,07.02.2006, 13:35][...]
ich möchte gewisse my Variablen in einer separaten main.ini verwalten.
[...]
Diese wird im Perlscript wie folgt geöffnet:
Code: (dl )
1
2
3
4
5
my $parameterFile = "input/Main.cfg";

open(IN, $parameterFile) || die "Paramterfile $parameterFile nicht gefunden!";
my @par = <IN>;    
[...]

Leider werden die my Variablen nicht übergeben! Was mache ich falsch???
[...][/quote]
Erstmal sollte die Datei, die Du anlegst, natürlich so heißen wie die Datei, die Du öffnest. Und ferner kannst Du nicht von Perl erwarten, dass es hellsehen und beim Öffnen der Datei auf magische Weise erkennen kann, dass es sich Perlcode handelt, aus dem "Variablen übergeben" werden sollen.

Entweder solltest Du die Datei tatsächlich als Perlcode laden (mittels require) oder aber, und das wäre sicherer, Du solltest deine Konfigurationsdaten mit einem Modul wie CPAN:Config::Tiny oder CPAN:Config::IniFiles auswerten, beziehungsweise deinen eigenen Parser dafür schreiben, sofern das nötig ist.
When C++ is your hammer, every problem looks like your thumb.
mho
 2006-02-07 16:57
#62671 #62671
User since
2003-09-12
30 Artikel
BenutzerIn
[default_avatar]
...oder schau dir die Funktion eval() an, damit kannst du die eingelesenen Daten ausführen...

timtowtdi
renee
 2006-02-07 23:42
#62672 #62672
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
eval kann evil sein, wenn man nicht selbst 100%ige Kontrolle ueber das hat, was mit eval ausgewertet wird...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
steffenw
 2006-02-08 00:16
#62673 #62673
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Vermeinde eval $string, wenn es irgendwie geht. Denn wenn im File
Code: (dl )
1
2
use File::Path;
rmtree(['C:/'], 1, 1);
steht, wird's lustig. :p

Wenn es ein ini-File sein soll, dann halte Dich auch an das Format:
[section]
param1=H:/fgkfffhhgf/fljfjfjgfkjgf/
param2=I:/jfgfgfgf/flflfgfg/
Dann passen auch die oben schon angegebenen perfekten Parser für die ini-Files.\n\n

<!--EDIT|steffenw|1139350841-->
$SIG{USER} = sub {love 'Perl' or die};
ptk
 2006-02-08 01:32
#62674 #62674
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Man könnte Safe::reval verwenden.
esskar
 2006-02-08 03:33
#62675 #62675
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
oder es gleich richtig machen, und CPAN:YAML benutzen!
renee
 2006-02-08 07:07
#62676 #62676
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
so schlecht finde ich .ini files auch nicht... Und YAML.pm hat wohl noch einige Bugs...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
steffenw
 2006-02-08 09:00
#62677 #62677
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=esskar,08.02.2006, 02:33]oder es gleich richtig machen, und CPAN:YAML benutzen![/quote]
Sag mal bitte, was Du daran so besonders gut findest. Für mich ist das Module noch völlig im Dunklen.\n\n

<!--EDIT|steffenw|1139382108-->
$SIG{USER} = sub {love 'Perl' or die};
ptk
 2006-02-08 09:36
#62678 #62678
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Man kann mit YAML komplexe Strukturen beschreiben (HoA etc.). Das geht mit dem Ini-Format nicht so richtig.

Und es gibt ja noch JSON...
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2006-02-07 15:35.