/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
hoppe videre i løkke ....
Fra : Michael


Dato : 16-07-04 09:47

Jeg har

while (defined ($buf = <$new>))
{
if ($buf =~ m/123/) { ... }
if ($buf =~ m/456/) { ... }
if ($buf =~ m/789/) { ... }

# misc clean up
}

Jeg mener ikke det bør være nødvendigt at fortsætte med at matche $buf, når
jeg har fundet en match, idet at når en match er opfyldt, vil der aldrig
kunne matches på de andre.

Hvordan får jeg scriptet til at forsætte til #misc clean up, når der er
fundet en match

Jeg har prøvet med

LAB: while .......
if ($buf =~ m/123/) { kode; next LAB }

og forskellige andre ting som ikke virker :)

Nogen som kan hjælpe mig lidt på vej?

--
Mvh



 
 
Lars Balker Rasmusse~ (16-07-2004)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 16-07-04 09:49

"Michael" <maskinen@hotmail.com> writes:
> Jeg mener ikke det bør være nødvendigt at fortsætte med at matche $buf, når
> jeg har fundet en match, idet at når en match er opfyldt, vil der aldrig
> kunne matches på de andre.

while (defined ($buf = <$new>)) {
if ($buf =~ m/123/) { ... }
elsif ($buf =~ m/456/) { ... }
elsif ($buf =~ m/789/) { ... }

# misc clean up
}
--
Lars Balker Rasmussen Consult::Perl
http://consult-perl.dk

Michael (16-07-2004)
Kommentar
Fra : Michael


Dato : 16-07-04 10:27

"Lars Balker Rasmussen" <lars@balker.org> skrev i en meddelelse
news:0fu0w8balr.fsf@lagavulin.balker.org...
> "Michael" <maskinen@hotmail.com> writes:
> > Jeg mener ikke det bør være nødvendigt at fortsætte med at matche $buf,
når
> > jeg har fundet en match, idet at når en match er opfyldt, vil der aldrig
> > kunne matches på de andre.
>
> while (defined ($buf = <$new>)) {
> if ($buf =~ m/123/) { ... }
> elsif ($buf =~ m/456/) { ... }
> ......
> Lars Balker Rasmussen Consult::Perl

ahhh selvfølgelig ...

Takker..

--
Mvh



Kåre Olai Lindbach (16-07-2004)
Kommentar
Fra : Kåre Olai Lindbach


Dato : 16-07-04 12:51

On Fri, 16 Jul 2004 11:27:25 +0200, "Michael" <maskinen@hotmail.com>
wrote:

>"Lars Balker Rasmussen" <lars@balker.org> skrev i en meddelelse
>news:0fu0w8balr.fsf@lagavulin.balker.org...
>> "Michael" <maskinen@hotmail.com> writes:
>> > Jeg mener ikke det bør være nødvendigt at fortsætte med at matche $buf,
>når
>> > jeg har fundet en match, idet at når en match er opfyldt, vil der aldrig
>> > kunne matches på de andre.
>>
>> while (defined ($buf = <$new>)) {
>> if ($buf =~ m/123/) { ... }
>> elsif ($buf =~ m/456/) { ... }
>> ......

>ahhh selvfølgelig ...

Jeg finner også denne løsningen renest, dog kan du også bruke en
'next'-kommando i din første løsning.

Videre kan du bruke en 'last'-kommando, dersom man av en eller annen
grunn skulle ha ett kriterie som tilsier at man er ferdig før filen
(elns) er uttømt.

--
mvh/Regards Kåre Olai Lindbach
(News: Remove '_delete_' and '.invalid')
(HTML-written email from unknown will be discarded)

Kåre Olai Lindbach (16-07-2004)
Kommentar
Fra : Kåre Olai Lindbach


Dato : 16-07-04 12:54

On Fri, 16 Jul 2004 13:51:03 +0200, Kåre Olai Lindbach
<barbr-en_delete_@online.no.invalid> wrote:

>Jeg finner også denne løsningen renest, dog kan du også bruke en
>'next'-kommando i din første løsning.
>
>Videre kan du bruke en 'last'-kommando, dersom man av en eller annen
>grunn skulle ha ett kriterie som tilsier at man er ferdig før filen
>(elns) er uttømt.

Trekker dette innlegget tilbake, da du skal innom #misc for enhver
loop!

--
mvh/Regards Kåre Olai Lindbach
(News: Remove '_delete_' and '.invalid')
(HTML-written email from unknown will be discarded)

Peter Makholm (16-07-2004)
Kommentar
Fra : Peter Makholm


Dato : 16-07-04 10:44

"Michael" <maskinen@hotmail.com> writes:

> while (defined ($buf = <$new>))
> {
> if ($buf =~ m/123/) { ... }
> if ($buf =~ m/456/) { ... }
> if ($buf =~ m/789/) { ... }
>
> # misc clean up
> }

Enten gør du som Lars har skrevet og ellers burde du kunne smide '#
misc clean up' ind i en contibue-block.

--
Peter Makholm | According to the hacker ethic, the meaning of life
peter@makholm.net | is not Friday, but it is not Sunday either
http://hacking.dk | -- Pekka Himanen

Jesper Louis Anderse~ (16-07-2004)
Kommentar
Fra : Jesper Louis Anderse~


Dato : 16-07-04 11:00

Peter Makholm <peter@makholm.net> wrote:
> "Michael" <maskinen@hotmail.com> writes:
>
>> while (defined ($buf = <$new>))
>> {
>> if ($buf =~ m/123/) { ... }
>> if ($buf =~ m/456/) { ... }
>> if ($buf =~ m/789/) { ... }
>>
>> # misc clean up
>> }
>
> Enten g?r du som Lars har skrevet og ellers burde du kunne smide '#
> misc clean up' ind i en contibue-block.

Alternativt:

SWITCH: {
   if (/foo/) { ...; last SWITCH; }
   if (/bar/) { ...; last SWITCH; }
   if (/baz/) { ...; last SWITCH; }
   ...; #No-match basis
}

# misc clean up

Det ville dog vaere federe hvis man i misc cleanup ikke skulle checke
hvad man havde lavet tidligere. Schemes SRFI-2 (AND-LET) konstruktion
kunne vaere interessant her. (srfi.schemers.org hvis nogen skulle
vaere interesseret i den).

--
j.

Tore Aursand (16-07-2004)
Kommentar
Fra : Tore Aursand


Dato : 16-07-04 10:59

On Fri, 16 Jul 2004 10:47:14 +0200, Michael wrote:
> while (defined ($buf = <$new>))
> {
> if ($buf =~ m/123/) { ... }
> if ($buf =~ m/456/) { ... }
> if ($buf =~ m/789/) { ... }
>
> # misc clean up
> }

Ikke testet:

while ( defined <$new> ) {
if ( /123/ ) { ... }
elsif ( /456/ ) { ... }
elsif ( /789/ ) { ... }

# misc cleanup
}


--
Tore Aursand <tore@aursand.no>
"Those people who think they know everything are a great annoyance to
those of us who do." (Isaac Asimov)

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste