Hey Jo,
ich glaub, der Fehler liegt im fehlenden Fragezeichen hinter dem *.
s/<start id="1">.*</start>//g
ersetzt Dir den ganzen Text von Anfang bis Ende
s/<start id="1">.*?</start>//g
ist "non-greedy", d.h. es wird nur der Teil bis zum nächsten Vorkommen von "</start>" ersetzt.
War's das?
Christoph
Versteh ich absolut nicht was du meinst. Kannst du das näher präzesieren?
Hier ist nochmal ein Beispiel:
my $str = "<start id="1"> bla bla 1 </start><start id="2">bla bla 2 </start>";
$str =~ s/<start id="2">.*</start>//g; ### das geht noch so
###$str =~ s/<start id="1">.*</start>//g; ### aber das nicht
print $str."\n";Ich will also ein <start>-Element komplett rauswerfen, das andere soll aber drin bleiben.