Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Freezing a regular expression qr()

by choroba (Cardinal)
on Sep 06, 2017 at 12:10 UTC ( [id://1198767]=note: print w/replies, xml ) Need Help??


in reply to Freezing a regular expression qr()

You can use the convert_blessed option. To add a TO_JSON method to regexes, just define it in the ref qr() namespace, i.e. Regexp :
#! /usr/bin/perl use warnings; use strict; use JSON::XS; my $json = JSON::XS->new->convert_blessed; sub Regexp::TO_JSON { "" . shift } my $re = qr/^-{1,}\z/; print $json->encode([$re]), "\n";

Update:

You can even localize the change, so that regexes behave normally in other parts of the code:

{ no strict 'refs'; local *{'Regexp::TO_JSON'} = sub { "" . shift }; print $json->encode($re), "\n"; }

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1198767]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (5)
As of 2024-04-19 12:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found