perl: how to get the original regex from the precompiled version?
use 5.014; use warnings; my $re = <DATA>; chomp $re; my $re2 = qr/$re/; say $re2; __END__ ^\w$
(?^u:^\w$) #added the (?^u:
Is any correct way to decompile $re2 getting back the original regex?
Motivation: the regex is an config value, so need:
- read it
- compile it
- save it to the file for the later use.
But can't save the compiled regex for the later use, because in every compiling the regex got expanded with the (?^u:, so after several cycles i ended with like:
therefore the question are:
- is here any correct way, how to save the compiled version?
- if no way - how to decompile, to getting the original version?
- any idea?
While I would just keep the string copy around for data usage, and then compile a copy when I needed to use it, you can also use the regexp_pattern function from the core re module to return the pattern used to create a compiled regex:
use re 'regexp_pattern'; print regexp_pattern qr/^\w$/;