in reply to qr for recursive regex?
Hi darisler,
Trying to write some code that reads in a list of coordinates, must have an odd number for some odd reason... but I'd like to know how to define '$coords' recursively
Do you have to define '$coords' recursively or repeatedly? And I don't know why you are using your regex like you are doing. If I get what you wanted, you can simply use split to get all the coords into an array, so they are in right order as follow in your original string, then loop for this like so:
Output:use v5.16; use strict; my $prBoundaryString = <<endPrBoundary; '( (0.01 0.02) (0.0 1328.23) (0.01 0.02) (0.04 0.53) (0.03 44.23) (0.0 1328.23) (0.04 0.53) ) endPrBoundary say "prBoundaryString=$prBoundaryString"; my @pts = grep { /\d+/ } split /\s+|[()]/, $prBoundaryString; my $count = 0; for ( 0 .. $#pts ) { if ( $_ % 2 == 0 ) { print qq[-x$count=$pts[$_]] } else { print qq[-y$count=$pts[$_]]; $count++ } }
Note: I modified the string you gave to show that it would get it in right order.prBoundaryString='( (0.01 0.02) (0.0 1328.23) (0.01 0.02) (0.04 0.53) +(0.03 44.23) (0.0 1328.23) (0.04 0.53) ) -x0=0.01 -y0=0.02 -x1=0.0 -y1=1328.23 -x2=0.01 -y2=0.02 -x3=0.04 -y3=0.53 -x4=0.03 -y4=44.23 -x5=0.0 -y5=1328.23 -x6=0.04 -y6=0.53
|
|---|