Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • All I can offer is that during some recent attempts to refactor ExtUtils::ParseXS, I encountered this warning when attempting to make that module work under 'use strict'. IIRC, I got it in a part of the code that was using the "deferred regex evaluation" feature -- ??{ $some_variable } -- inside of itself.

    $bal = qr[(?:(?>[^()]+)|\((??{ $bal })\))*]; # ()-balanced

    $cast = qr[(?:\(\s*SV\s*\*\s*\)\s*)?]; # Optional (SV*) cast

    $size = qr[,\s* (??{ $bal }) ]x; # Third arg (to setpvn)

    Again, IIRC, my temporary workaround was to declare $bal as 'our' rather than 'my'. But since my work on this module has stalled, I can't offer any better insight. Note that 'perldoc perldiag' hints at this being a closure-related problem ... but I didn't encounter it in a closure-related situation at all.

    Thank you very much.


    • Thanks for the advice. I eventually tracked it down to Regexp::Common and was able to remove the warning if I just imported the number specific regexes:

        use Regexp::Common qw(number);