Schrift
[thread]6974[/thread]

regex gesucht



<< >> 5 Einträge, 1 Seite
Froschpopo
 2005-05-10 10:48
#54705 #54705
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich lese eine konfigurationsdatei so ein:

Code: (dl )
1
2
3
4
5
6
7
8
9
while (<CONFIG>) 
{
chomp;
s/^\s+//;
s/\s+$//;
next unless length;
my ($var, $value) = split(/\s*=\s*/, $_, 2);
$cfg{$var} = $value;
}


Datei Datei sieht dann so aus:
Code: (dl )
1
2
3
var1=wert
var2=wert
var3=wert

Jetzt hab ich allerdings das problem, dass in $value kein = (Gleichheitszeichen) vorkommen darf. Das ist für mich leider ein problem.
renee
 2005-05-10 11:43
#54706 #54706
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Beschreib mal genauer Dein Problem...

Ist Dein Problem, dass in $value ein = vorkommt, obwohl es nicht sein darf? dann mach doch einfach $value =~ s/=/ /g;

oder ist Dein Problem, dass Du glaubst, dass bei einem = in dem Wert nochmal gesplittet wird. Das ist aber
nicht der Fall, da Du ja bei split() explizit das LIMIT (siehe perldoc -f split) angibst...
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/
renee
 2005-05-10 11:44
#54707 #54707
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Außerdem würde ich Dir zu CPAN:Config::IniFiles oder ein anderes CPAN:IniFile raten...
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/
Strat
 2005-05-10 14:15
#54708 #54708
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Froschpopo,10.05.2005, 08:48]Jetzt hab ich allerdings das problem, dass in $value kein = (Gleichheitszeichen) vorkommen darf. Das ist für mich leider ein problem.[/quote]
Code: (dl )
my ($var, $value) = split(/\s*=\s*/, $_, 2);

Bist du sicher, dass das fehlschlaegt? durch das 2 als dritter split-parameter wird $_ nur in maximal zwei teile geteilt, d.h. $value kann auch = enthalten... nur in $var ist = nicht moeglich...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Strat
 2005-05-10 14:18
#54709 #54709
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
hier noch ein testfall:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
C:\test>perl
use warnings; use strict;
$_ = "abc=def=geh\n";
chomp;
s/^s\+//; s/\s+$//;
my ($var, $value) = split(/\s*=\s*/, $_, 2);
print "\$var: $var\n";
print "\$value: $value\n";
^D
$var: abc
$value: def=geh
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 5 Einträge, 1 Seite



View all threads created 2005-05-10 10:48.