Hi,

I don't know what happens and where in the code, but... Anyway, it's strange... I have this code and input.tpl:

--------------- 8< -------------------

rule sp {
    <[ ]>
}

rule id {
    <[a..z]><[a..z0..9]>+
}

sub do($match) {
    say $match[0];
    return "+";
}

my $template=slurp('input.tpl');

$template ~~
    s:g!
[ \< server \: (<id>) [<sp>+ $?id:=(<id>) <sp>*=<sp>*"(<-["]>*)"]* <sp>* \> (.*?) \<\/ server \: $0 \> ]
    |
    [ \< server \: (<id>) [<sp>+(<id>)<sp>*=<sp>*"(<-["]>*)"]* <sp>* \/\> ]
    !{ do($/) }!;

say $template;

--------------- 8< -------------------

text

<server:foo />

<server:huh />

text

<server:boo> inside <server:huh /> inside </server:boo>

text

--------------- 8< -------------------

Running it several times, one time works: matches and replaces </> things to +-es, one time it not works... Randomly. Where should I send these kind of bugs?

Bye,
  Andras

Reply via email to