Matti Maekitalo: regulärer Ausdruck will nicht so recht

Beitrag lesen

use Mosche;

Ich habe folgendes regulären Ausdruck :
$input =~ s/$1/$1\n$neuer_reply/ if $input =~ /(<posting=$postingid>.+?</posting>)/s;

Ich will also an diesen Teil <posting=$postingid>.+?</posting> noch einen Teil dranhängen, was ich dadurch versucht habe s/$1/$1\n$neuer_reply/. Das Problem ist, dass er mir den gefundenen Teil  durch den neuen Teil ersetzt, und nicht dranhängt, aber warum ist das so?

Ich bin mir nicht sicher, ob das $1 auch so von rechts nach links übertragen wird. Diese Fehlerquelle wird durch folgenden Code ausgemerzt.

if ($input =~ /(<posting=$postingid>.+?</posting>)/s) {
   $input =~ s/$1/$1\n$neuer_reply/;
}

Wenn das immer noch nicht geht, probier nicht mit $1 zu arbeiten, weil du nicht weisst, wann das vom zweiten Regex überschrieben wird, sondern arbeite mit eigenen Variablen

if (($blah) = $input =~ /(...)/) {
   $input =~ /$blah/$blah ../;
}

use Tschoe qw(Matti);

--
$a=n(1001010);print chr($a+=$_)for(0,43,-2,1,-84,65,13,1,5,
-12,-3,13,-82,48,21,13,-6,-76,72,-7,2,8,-6,13,-104);sub n{
$b=0;$_=0;for($c=length$_[0];$c;--$c){$_+=_($b)if substr$_
[0],$c-1,1;$b++;}$_}sub _{($d)=@_;for($e=1;$d--;$e*=2){}$e}