Have a look at Data::Dump::Streamer where there is a function called (unimaginatively) 'regex'. The function works as follows:
#!perl -l use Data::Dump::Streamer qw(:util); for ('(foo)',qr/(foo)/, qr/bar/x,bless qr/baz/i,'ARRAY') { print "Got: /$_/"; print "list regex() =\t",join "\t/\t",regex $_; print "scalar regex() =\t",scalar regex $_; print ""; } __END__ Got: /(foo)/ list regex() = scalar regex() = Got: /(?-xism:(foo))/ list regex() = (foo) / scalar regex() = (?-xism:(foo)) Got: /(?x-ism:bar)/ list regex() = bar / x scalar regex() = (?x-ism:bar) Got: /ARRAY=SCALAR(0x1acf014)/ list regex() = baz / i scalar regex() = (?-xism:baz)
That last one is the main reason this subroutine exists, but it also solves the problem of getting the pattern the user provided back instead of the wrapped one that normally is returned (this way you can have both).
Anyway, I hope this is useful to you, it seemed like it might be.
In reply to Re: Distinguishing between // and qr{} interpolation
by demerphq
in thread Distinguishing between // and qr{} interpolation
by grinder
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |