"Michael Andreasen" <maskinen2000@hotmail.com> writes:
> Jeg har en masse i @enmasse
>
> Jeg ønsker at finde "### start ###" og "### slut ###" og slette alt
> derimellem?
Du har altså elementer der hedder sådan?
Jeg ville nok gøre det med en smart grep-komando:
@enmasse = grep {
not /^### start ###$/ .. /^### slut ###$/
} @enmasse;
En der er mere vandt til C eller ligende sprog ville nok lave en
whileløkke:
my @result = ();
my $ok = 1;
while ($elem = shift @enmasse) {
$ok = 0 if $elem eq "### start ####";
push @result, $elem if $ok;
$ok = 1 if $elem eq "### slut ####";
}
@enmasse = @result;
Eller noget ligende. Ingen af løsningerne har det godt med nestede
start/slut-tingester, men den sidste er let nok at få til det (tæl
hvor mange start-tags du mangler at slutte).
--
Peter Makholm | What if:
peter@makholm.net | IBM bought Xenix from Microsoft instead of buying
http://hacking.dk | DOS?