The result of (??{ print $1 }) is 1 because print() succeeded in writing to STDOUT. The regex that was then compiled by (??{ ...}) was "1" which then failed. So the (.) advanced over every character and printed them individually. The proper thing to do here would have been (?{ ... }) which will not affect regex matching.
In reply to Re^2: Dynamic regex assertions, capturing groups, and parsers: joy and terror
by diotalevi
in thread Dynamic regex assertions, capturing groups, and parsers: joy and terror
by japhy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |