develooper Front page | perl.perl5.porters | Postings from February 2012

Re: [perl #109798] '/e' regexp modifier is not recognized by re pragma

Thread Previous | Thread Next
February 5, 2012 09:23
Re: [perl #109798] '/e' regexp modifier is not recognized by re pragma
Message ID:
On 5 February 2012 01:19, Eric Brine via RT <> wrote:
> On Sat Feb 04 16:15:49 2012, wrote:
>> On Sat Feb 04 04:05:02 2012, wrote:
>> > When '/e' modifier is used with 're' module, Perl complains about
>> > unknown modifier. Personally, I think that informing about '/e'
>> > not being able to be used by 're' module would be more useful.
>> >
>> >     C:\Users\Konrad>perl -e "use re '/e'"
>> >     Unknown regular expression flag "e" at -e line 1
>> That message is accurate.
>> >perl -e" /(?e:x)/ "
>> Sequence (?e...) not recognized in regex; marked by <-- HERE in m/(?e
>> <-- HERE :x)/ at -e line 1.
>> "e" is not a regular expression flag. It is a substitution operator flag.
> Also note that "e" is not mentioned in perlre. The regex flags are (as
> listed in perlre): m, s, i, x, p, g, c, a, d, l, u.

Just to note, perlre does not decide this. regexp.h does.

> (I find this very odd that p, g and c are regex flags instead of match
> substitute operator flags, but they are are.)


/p relates to how we manage $`, $&, $', and has nothing to do with substitution.

/g relates to how match

/c relates to how we match.

None of them have anything to do with substitution.

On the other hand /e does, as does /ee


perl -Mre=debug -e "/just|another|perl|hacker/"

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About