Schrift
[thread]5743[/thread]

Den Wert eines Scalars als Namen fuer einen ....



<< >> 4 Einträge, 1 Seite
blackm
 2003-09-22 19:42
#54713 #54713
User since
2003-09-22
10 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi,

Code (perl): (dl )
1
2
3
4
5
6
7
8
use strict;

[...]
while(<CONFIG>) {
if(! (/^[\#;]/ || /^\s*$/)) {
    /^\s*(\S*)\s*=?\s*(.*?)\s*$/;
    our $$1 = $2;
}

Liest eine Configurationsdatei ein die etwa so aussieht:
Code:
Quote
# Kommentar
#
item1 = hallo_welt

item2 = hallo, das ist ein test

item1 soll der Name des Scalar werden und hallo_welt der Wert. Leider geht das nicht so leicht wie ich mir das vorgestellt hab...
Quote
(F) Only hard references are allowed by "strict refs".

Ist die Fehlermeldung. Also hab ich es mit no strict 'refs' versucht, aber da bekomme ich
Quote
Can't declare scalar dereference in my at ./config.pl line 21, near "$1 ="

...

Jemand ne Idee wie ich noch an das Problem rangehen kann?

by, Martin
eisbeer
 2003-09-22 19:51
#54714 #54714
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Du kannst in Perl nicht einfach ne Variable soft so benennen, wie
du das in zB php kannst, ich schlag dir einfach vor, das in nen Hash zu packen:

Code: (dl )
1
2
3
4
5
6
7
8
9
my %CFG;

...

while(<CONFIG>) {
next if (/^\s*(#.*)?$/);
my ($key, $value) = split(/[\s\t]*=[\s\t]*/);
$CFG{$key} = $value;
}


untested
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
Relais
 2003-09-22 19:53
#54715 #54715
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
CPAN:Config::Simple wartet auf Dich ;)
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
format_c
 2003-09-23 00:04
#54716 #54716
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Bis darauf dass in ner Klassik Konfig-Datei nicht das # als Kommtarzeichen dient sondern das ;
Vorsicht. Config Simple haut einem sämtliche Kommtentare aus der Datei wenn man Sie speichert.

Gruß Alex

Gruß Alex
<< >> 4 Einträge, 1 Seite



View all threads created 2003-09-22 19:42.