|
|||||||||||||||||||||||||||
On Monday 24 February 2003 16:12, Jesper Dalberg (sslug@sslug)
wrote in <sslug@sslug>:
> Hvis du insisterer på at hælde matches I $1, $2...osv., så er det nødt
> til at foregå I 2 omgange fordi du ikke (antager jeg) kender antallet af
> ord I strengen. Derfor er du nødt til at håndtere det I 2 omgange,
> ala...
...<snip>...
> my @matches = $var =~ m/\b(\w+)\b/g;
> for ( @matches ) { $rx .= '(\w+)\s+'; }
>
> # Cut sidste \s+
> $rx=~s/(.*)\\s\+$/$1/g;
>
> # Fylder $1, $2 osv.
> $var=~/$rx/g;
>
> print "matches are ". join(",", @matches)."\n";
> print "test is $var\n";
> for ( my $i = 1; $i <= scalar( @matches ) && defined( ${$i} ); $i++ ) {
> print "\$$i is ".${$i}."\n"; }
>
>
> Men det dufter af noget pølle at insistere på $1..n som jo er readonly.
>
> Men det præcise svar på "Er det muligt i eet hug at filtrere ord ud i
> $1, $2 etc.?" er: "nej, ikke uden at vide mere om strengen.." ;)
OK. Ønsket var netop at det skulle gøres med en streng af på forhånd ukendt
længde. Tak for svaret.
--
Med venlig hilsen / Best regards
David List
|
||||||||||||||
|
||||||||||||||