Beat: altes Problem mit suche ersetze

Beitrag lesen

ich habe ein Template (Datei) die so aussieht.
Messwert: "H1_temperatur" °C
usw.
Jetzt lese ich die Datei mit jeder Zeile ein und sage.
Suche alles zwischen den Anführungszeichen
$variablenname = s/^"+"$
und es sollte H1_temperatur herauskommen. Macht natürlich nicht !!!
zum Schluss habe ich den Messwert von x geholt und will Ihn eintragen
$zeile =~ s/^"+"$/$data/;
Ich will nun das das Ergebnis "Messwert: 23,7 °C" aussieht.

zerlege deine RE in verschiedene Tokens mit der qr// Syntax.

Nehmen wir an, du hast "a b c"
und willst, dass am Ende "a data c"
dasteht,
wobei a, b, c beschreibbar sind mit Patters

my $a = qr/(?:Messwert|Sollwert):/;  
my $b = qr/"[^"]*"/;  
my $c = qr/°[CKF]/; #Celsius, Kelvin oder Farenheit  

Dann bauen wir das Suchpattern zusammen:

my $pat = qr/^($a) $b ($c)/; # hier werden $1 und $2 gespeichert.

Und nun der Test: Angenommen wir haben ein Filehandel offen:

while(<FH>){  
   s/$pat/$1 $data $2/;  
}

Wir haben das Pattern ausserhalb der Schleife zusammen gebaut. Das ist also schon mal schnell.

mfg Beat

--
Woran ich arbeite:
X-Torah
   <°)))o><                      ><o(((°>o