Using printf within the substitution:
#! perl use strict; use warnings; while (<DATA>) { chomp; s[\s(\d+)\d\K\s(?=(\d+)\d\s)] { printf("%s: (%s) (%s)\n", $_, $1, $2); }ge; } __DATA__ 105 106 107 108 109 110 111 112 113 1115 1116 1117 1118 1119 1120 1121 1122 1123 12345 12346 12347 12348 12349 12350 12351 12353
gives:
20:32 >perl 687_SoPW.pl 105 106 107 108 109 110 111 112 113: (10) (10) 105 106 107 108 109 110 111 112 113: (10) (10) 105 106 107 108 109 110 111 112 113: (11) (11) 1115 1116 1117 1118 1119 1120 1121 1122 1123: (111) (111) 1115 1116 1117 1118 1119 1120 1121 1122 1123: (111) (111) 1115 1116 1117 1118 1119 1120 1121 1122 1123: (112) (112) 12345 12346 12347 12348 12349 12350 12351 12353: (1234) (1234) 12345 12346 12347 12348 12349 12350 12351 12353: (1234) (1234) 12345 12346 12347 12348 12349 12350 12351 12353: (1235) (1235) 20:32 >
which seems to show that each comparison is consuming three terms from the data line, instead of one. I don’t understand why this is, but I’m posting in the hope that it provides someone with a useful clue as to what is going on. :-)
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re: Why doesn't this regex work?
by Athanasius
in thread Why doesn't this regex work? (Solved!)
by BrowserUk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |