Hans, got it: /x tells sys' to ignore all white space, not just \n. thanks 
very much. and thanks to the people who make possible this great mailing 
list. ;o)

tom arnall
north spit, ca


On Friday 31 March 2006 07:29 am, Hans Meier (John Doe) wrote:
> tom arnall am Freitag, 31. März 2006 09.56:
> > i need the blank in 'From [' etc in order to distinguish it from the
> > strings with 'From:' one solution to the problem, btw, is to use '\s'
> > instead of a literal blank. does this behavior rank as a bug in perl?
>
> No, absolutely not.
>
> To make your distiction, you *have* to use the \s with the /x modifier;
> without, you can use either.
>
> The /x modifier's aim is to allow readable *formatting* of complex regexes
> with spaces, line brakes, comments (#). ' ' in this case is irrelevant for
> the matching. Look at the beginning of
>
> perldoc perlre
>
> hth!
>
> Hans
>
> [bottom post order:]
>
> > On Thursday 30 March 2006 05:15 am, Hans Meier (John Doe) wrote:
> > > tom arnall am Donnerstag, 30. März 2006 12.36:
> > > > the following code:
> > > >
> > > >         my (@main);
> > > >         $_="
> > > >         From a
> > > >         From: b
> > > >         From: c
> > > >         From: d
> > > >         ";
> > > >         @main = /From [^\n]*?\n.*?(From: .*?\n).*?/gx;
> > > >         print "@main";
> > > >         print "------------------------------\n";
> > > >         @main =         /From [^\n]*?\n.*?(From: .*?\n).*?/g;
> > > >         print "@main";
> > > >
> > > > produces:
> > > >
> > > >         From: b
> > > >          From: d
> > > >         ------------------------------
> > > >         From: b
> > > >
> > > > the only difference between the two regex lines is the 'x' after '/g'
> > > > in the first of the two regex lines.
> > >
> > > indeed :-)
> > >
> > > And your question could be: Why does this produce different results?
> > >
> > > There's an additional difference on the semantic level: spaces in the
> > > 1st regex are irrelevant. Look at the first regex space: in the 2nd
> > > regex, it matches (only) in "From a", but not in "From: c", whereas the
> > > 1st regex matches "From a" *and* "From: c".
> > >
> > > /From[^\n]*?\n.*?(From: .*?\n).*?/gx;
> > > and
> > > /From[^\n]*?\n.*?(From: .*?\n).*?/g;
> > > produce both the same output.
> > >
> > > hth!
> > > Hans



--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to