If you want to act on more than one id then try
while ($arrayElement =~ /:ID\s(\d*).*:P_ID\s(\d*)/g ) {
print $1,$2,"\n"; # just an example
}
The /g gets all matches of the regex, so the captured bit ($1,$2) will be updated for each match in the while loop.
| [reply] [d/l] |
For that, you'd want to use the global (/g) modifier on the end of your regex, and use the regex in a list context:
@ids = m/:ID\s\d*/g
You'll need to do another regex to pull the P_IDs,
@p_ids = m/:P_ID\s\d*/g,
and you won't be able to use backreferencing to ditch the ":ID " part. For that, I guess you could use another regex, or, if the data is regular, something like:
for $i (0..$#ids) {$ids[Ģi] = substr ($ids[$i], 4);} | [reply] [d/l] [select] |
No, you'll have to think a little here.
Hotshot | [reply] |