in reply to Why doesn't this regex work? (Solved!)
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, |
|
|---|