in reply to match with elements in array
#!/usr/bin/perl use strict; use warnings; my @line01 = ([200900, 202543], [202544, 204187], [204188, 205831], [205832, 207475], [207476, 210119], [210120, 211763], [211764, 213407], [213408, 215051], ); my $vector = 206000; for my $i (0 .. $#line01) { if ($vector >= $line01[$i][0] and $vector <= $line01[$i][-1]) { print $i+1 . "\n"; } }
Note that I have swapped from a series of arrays into an array of arrays (see perllol and/or perlreftut) so the testing code does not need to be repeated 8 times.
If the constraints are different than what I've assumed, you can do this a number of ways, like constructing a hash or regular expressions, which will be of varying appropriateness depending on the actual case.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: match with elements in array
by finder003 (Initiate) on May 19, 2010 at 21:59 UTC |