http://qs321.pair.com?node_id=1205864


in reply to Re^2: YAML::XS perl/regexp (?u:(?u:
in thread YAML::XS perl/regexp (?u:(?u:

You can add understanding of !!perl/regexp [ pattern, isu ] at any time, but backwards compatibility requires making the generation of that an option. Eventually, once support has been established, it could default to the new method.

Replies are listed 'Best First'.
Re^4: YAML::XS perl/regexp (?u:(?u:
by tinita (Parson) on Dec 19, 2017 at 21:17 UTC
    Another possibility would be to continue just using a string. Check with regexp_pattern(), if there are any flags (ignoring u), just store the stringified regex, otherwise store the pattern itself. This would still lead to unnecessary (?:...) but it wouldn't grow in roundtrips.
    Have been looking into universal.c how regexp_pattern() is implemented. At the moment it's too much magic for me to understand.

      I don't know what you mean by "check with regexp_pattern(), if there are any flags (ignoring u)". Do you mean "check if the results of ( regexp_pattern(qr/$pat/) )[1] contains anything but u"? It never will (unless you use use re "/...", which would be bad here).

        I mean, when Dump()ing a regex, not when Load()ing it.