Agreed. Quite why strictness doesn't propogate to regex code blocks is a good question.
You can always enable it yourself:)
P:\test>perl -le"my $re = qr[(??{ use strict; $re })];"
Global symbol "$re" requires explicit package name at (re_eval 1) line
+ 2.
Compilation failed in regexp at -e line 1.
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
Hooray!
| [reply] [d/l] |
Well, these constructs are experimental. Their behaviour is possibly subject to change in 5.10. Recently Abigail-II posted a doc change patch to p5p to have them no longer marked so, and the 5.10 pumpking rejected it on the grounds that it was one of his intentions to sort out a number of issues related to these constructs and that he couldnt guarantee that their behaviou would be unchanged by doing so. So, use the constructs if you wish, but be aware that you are using beta quality code.
PS, im guessing Hugo will try Real Hard to keep them as close to their current behaviour as possible, but given one of his major objectives of 5.10 is massive improvements to the regex engine its anyones guess what will happen. Hugo, if you're reading this, good luck mate. :-)
---
demerphq
First they ignore you, then they laugh at you, then they fight you, then you win.
-- Gandhi
| [reply] [d/l] |
The question was more a case of, "I wonder why strict doesn't propogate to regex code blocks?", rather than "Why woudln't 'they' let it propogate?"... but your point is taken. It will be nice to see the extended features legitimised, whatever final form they take.
I wonder what chance there is of getting a "capture to named vars" contruct added?
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
Hooray!
| [reply] |
So it would seem that castaway could trivially implement strict
compliant code without all the so-called bother that thus ensues:
#!/usr/bin/perl -w
use strict;
1 =~ m{(?{{
$foo = 42;
$bar = 2;
print $foo * $bar, "\n";
}})};
;) | [reply] [d/l] |
| [reply] |