[Dresden-pm] Re: CGI::Application und Konfiguration

Steffen Schwigon schwigon at webit.de
Fre Apr 16 11:49:45 CDT 2004


Kristian Rink <afterimage at gmx.net> writes:
> sub config()
> {
>         my ($self,$cfgfile)=@_;
>         open(CFG,$cfgfile);
>         while(<CFG>)
>         {
>                 my @cfgline=split(":",$_);
>                 $self->{$cfgline[0]}=$cfgline[1];
>         };
>         return 0;
> };
>
>
> Das Ganze klappt recht gut insofern, als daß die rudimentäre
> Applikation ohne Fehler durchläuft; allerdings sind die in config()
> überreichten Eigenschaften zu keinem Zeitpunkt wirklich da. Ich bin
> zur Zeit noch am Suchen, wo dort genau die Säge klemmt,
> grundsätzliche Fragen aber:
>
> (a) Kann mich jemand erleuchten, wo hier das Problem liegen könnte?
> (b) Ist das der "Weg(tm)", so etwas in diesem Kontext zu
>     realisieren, oder sind dort andere Mechanismen zu bevorzugen?

(a)

Sieht eigentlich gut aus.

Evtl möchtest Du noch ein
  chomp;
als erste Anweisung im while, um die Newlines am Zeilenende und damit
später auch den Configwerten zu löschen.

Und die runden Klammern nach "sub config" solltest Du auch
rausnehmen. Stören in Deinem Fall nicht wirklich, aber damit definiert
man prinzipiell Funktionsprototypen, und das ist in Perl irgendwas
schräges anderes als in herkömmlichen Sprachen.

Dein Problem liegt sicher in der Klasse drumrum oder im Aufruf.
Ich häng mal eine Minimalvariante mit Klasse, Aufrufscript und
Configfile unten dran, da kannst Du ja gucken, ob Dir Unterschiede
beim Aufruf auffallen.


(b)

Ist klassisch gelöst und lesbar. Damit IMHO ok. Diese Trivialsyntax des
Configfiles kann man vermutlich auch mit einem Halbzeiler lösen, aber
ich krieg jetzt auf die Schnelle auch keinen Rumposer-Code zustande.


GreetinX
Steffen 
-- 
Steffen Schwigon <schwigon at webit.de>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde geschreddert...
Dateiname   : Affe.pm
Dateityp    : application/x-perl
Dateigröße  : 355 bytes
Beschreibung: nicht verfügbar
URL         : http://mail.pm.org/pipermail/dresden-pm/attachments/20040416/f3db61e3/Affe.bin
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde geschreddert...
Dateiname   : affe.pl
Dateityp    : application/x-perl
Dateigröße  : 77 bytes
Beschreibung: nicht verfügbar
URL         : http://mail.pm.org/pipermail/dresden-pm/attachments/20040416/f3db61e3/affe.bin
-------------- nächster Teil --------------
key1:wert1
key2:wert2 und so Kram
key3:  watch the whitespace wert3
affe:zomtec