my $rx = 'abc';
my $qr = qr/$rx/;
if ('ABC' =~ /$qr/i) {
print "ABC matches /abc/i\n"
}
else {
print "ABC does not match /abc/i\n"
}
####
#!/usr/bin/perl -w
use strict;
my @patterns = ('abc', 'xyz');
my %regexes = map { $_, qr/$_/} @patterns;
my @strings = ('the alphabet starts with ABC',
'the alphabet ends with XYZ'
);
for my $str(@strings) {
for ( keys %regexes ) {
print qq("$str" =~ /$_/i => );
if ($str =~ /$regexes{$_}/i) {
print "(qr) match\n";
}
else {
print "(qr) no match\n"
}
}
}
for my $str(@strings) {
for ( @patterns ) {
print qq("$str" =~ /$_/i => );
if ($str =~ /$_/i) {
print "(pattern) match\n";
}
else {
print "(pattern) no match\n"
}
}
}
my $string = < (qr) no match
"the alphabet starts with ABC" =~ /xyz/i => (qr) no match
"the alphabet ends with XYZ" =~ /abc/i => (qr) no match
"the alphabet ends with XYZ" =~ /xyz/i => (qr) no match
"the alphabet starts with ABC" =~ /abc/i => (pattern) match
"the alphabet starts with ABC" =~ /xyz/i => (pattern) no match
"the alphabet ends with XYZ" =~ /abc/i => (pattern) no match
"the alphabet ends with XYZ" =~ /xyz/i => (pattern) match
dot-matches-all (qr) does not match
dot-matches-all (literal) matches
####
$ perl -e 'for (qw( i x s m )) {print eval "qr/perl/$_", "\n"}'
(?i-xsm:perl)
(?x-ism:perl)
(?s-xim:perl)
(?m-xis:perl)