Halihallo nochmals
Was für Konstanten speicherst du? - Kann man das nicht irgendwie in eine "ganz normale" andere Datei unterbringen?
cfg-Datei schreit mir nach sowas:
name1=value1
name2=value2
...
sowas lässt sich (und sollte sogar) ganz anders handhaben, als mit require und Sourceinbindungen zu arbeiten...
Vielen Dank für die schnelle Antwort ;)
Immer gerne ;)
Um sowas handelt es sich auch. Ich wollte sowohl mal etwas Code zusammenfassen als auch mal Configurationskonstanten auslagern (z.B. Dateinamen, Hintergrundfarben usw.) Wie funktioniert denn diese andere Handhabe ??
my %config;
open( CNF, '<./config.cnf' ) or die 'sh*** cannot open file : '.$!;
while (<CNF>) {
chomp; # keine Zeilenumbrüche
s/#.*//; # keine Kommentare
s/^\s+//; # keine anfangs-whites
s/\s+$//; # und keine am Ende
next unless length; # na, was übrig, wenn ja, dann...
my ($name, $value) = split(/\s*=\s*/, $_, 2);
$config{$name}=$value;
}
close CNF or die 'shit happens';
so kannst du folgende Datei einlesen:
Kommentar wird ignoriert
hello = world
test = 15
wenn du dann print $config{'hello'} eingiebst, wird "world" ausgegeben.
Daß man Perl i.A. nicht compiliert ist mir klar. Aber durch die Beschreibung der Handhabung des "require" Befehls (6 oder 7 Seiten) bin ich nicht ganz durchgestiegen. Da stand z.B. daß man die Teile nur in bestimmten Verzeichnissen unterbringen kann und da war von einer richtigen Installation der Module die Rede. Wirkte jedenfalls auf den ersten Blick sehr aufwendig. Oder habe ich da 2 Sachen vermischt ??? Sind Module und die Sachen, die man mit "require" einbindet 2 verschiedene Paar Schuhe ??
Äm... Also: require tut gar nix anderes, als irgendetwas in das Programm einzubinden. Dieses etwas wird auch auf Perl-Code-Validität überprüft, sonst gibt's ein Fehler. Aber ob du nun eine Funktion, ein Modul oder ein anderes Programm requirest ist der require-Prozedur eigentlich wurscht...
Module sind spezielle Perl-"Programm" (oder eben besser: Module). Diese sind keine allein lauffähigen Programme, sondern sie sind "Sammelpackete"... Du hast z. B. ein Problembereich "Kalenderfunktionen" und möchtest diese irgendwo sammeln und zu einem Packet zusammenschnüren => das gibt dann ein Modul... Soweit klar?
Viele Grüsse
Philipp