Beat: String durchsuchen & ersetzen

Beitrag lesen

Toll, vielen Dank.

Hab noch ne Frage:
Was bedeutet "[^$]+" ?

Das ist ein Schreibfehler.

$txt =~ s/$$([^$]+)$$/$hash{$1}/g;

wäre richtig (maskiertes $)
Also [^$]
Eine zeichenklasse sdie alles ausser "$" zulässt
Ich würde das Einschränken im Sinne von
[A-Za-z0-9_-]+

Es ist aber suboptimal:
Was wenn der Hashkey nicht existiert?
Wir verwenden besser s///eg mit einer sub

  
$txt =~ s/\$\$([A-Za-z0-9_-]+)\$\$/template_to_hash_replace($1)}/eg;  
  
sub template_to_hash_replace{  
  my $var = shift;  
  if( exists $hash{$var} ){  
    return $hash{$var};  
  }  
  else{  
    return "TEMPLATE_ERROR(".$var.")");  
  }  
}  

mfg Beat

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