$re = "(?:$flags:$core)";
That doesn't work: too many ':' (colons):
c:\@Work\Perl\monks>perl -wMstrict -le
"my $string = '/.*uba$/i';
;;
my $flag = qr{ [msixpodual] }xms;
;;
my $convertable =
my ($core, $flags) = $string =~ m{
\A \s* / (.*?) / ($flag*) \z
}xms;
die qq{bad rx: '$string'} unless $convertable;
;;
my $re = qq{(?:$flags:$core)};
print $re;
print 'A: match' if 'uba' =~ $re;
"
(?:i:.*uba$)
Something like this works:
c:\@Work\Perl\monks>perl -wMstrict -le
"my $string = '/.*u\/ba$/i';
;;
my $flag = qr{ [msixpodual] }xms;
;;
my $convertable =
my ($pattern, $modifiers) = $string =~ m{
\A \s* / (.*?) / ($flag*) \z
}xms;
die qq{bad rx: '$string'} unless $convertable;
;;
my $rx = qr{(?$modifiers)$pattern};
print $rx;
print 'A: match' if 'u/Ba' =~ $rx;
;;
my $ry = qr{ \A foo $rx }xms;
print $ry
;;
print 'B: match' if 'foolubatU/bA' =~ $ry;
print 'C: match' if 'FoolubatU/bA' =~ $ry;
"
(?^:(?i).*u\/ba$)
A: match
(?^msx: \A foo (?^:(?i).*u\/ba$) )
B: match
Note that:
-
I go directly to qr// form.
-
The modifiers ($flag pattern) implemented vary by Perl version; see perlop.
Give a man a fish: <%-{-{-{-<
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|