Unless this module is messing with internals, the most likely reason is your code snippet is not what you really run
You said
> Naive code:
Could it be you forgot my or maybe $1 is undefined because your if clause does more complicated checks?
Most importantly:
Can you reproduce this problem with exactly the demonstrated code?
Provided this is not an XY Problem.
Something roughly like (untested)...
my $code_ref = eval "sub{ m#INT $int# }" ; $rule->and($code_ref);
...will hardcode $int into the sub right away.
But be careful to keep full control of $int and to catch potential eval errors in $@
Cheers Rolf
(addicted to the Perl Programming Language :)
see Wikisyntax for the Monastery
|
|---|