use Data::Dumper;
my %myhash;
$myhash{REGEXP} = qr/^something$/;
print Dumper \%myhash;
__END__
$VAR1 = {
'REGEXP' => qr/(?-xism:^something$)/
};
####
$myhash{REGEXP} = qr/^something$/;
print $myhash{REGEXP}; # --> (?-xism:^something$)
$myhash{REGEXP} = qr/(?-xism:^something$)/;
print $myhash{REGEXP}; # --> (?-xism:(?-xism:^something$))
$myhash{REGEXP} = qr/(?-xism:(?-xism:^something$))/;
print $myhash{REGEXP}; # --> (?-xism:(?-xism:(?-xism:^something$)))
...
####
---
REGEXP: !!perl/regexp (?-xism:^something$)
####
package YAML::Type::regexp;
...
use constant _QR_TYPES => {
'' => sub { qr{$_[0]} },
x => sub { qr{$_[0]}x },
i => sub { qr{$_[0]}i },
...
msix => sub { qr{$_[0]}msix },
};
sub yaml_load {
my $self = shift;
my ($node, $class) = @_;
return qr{$node} unless $node =~ /^\(\?([\-xism]*):(.*)\)\z/s;
my ($flags, $re) = ($1, $2);
$flags =~ s/-.*//;
my $sub = _QR_TYPES->{$flags} || sub { qr{$_[0]} };
my $qr = &$sub($re);
bless $qr, $class if length $class;
return $qr;
}
####
REGEXP: !!perl/regexp (?i-xsm:^something$)
|
v
qr{^something$}i