From: "Sayed, Irfan (Irfan)" <[EMAIL PROTECTED]>
> Can somebody please help me on following doubt.....

Question. You may doubt our ability to help you with your questions, 
but still what you have is a question, not a doubt. Please 
distinguish the two.

> But still my doubt exist. How Perl knows that it has to stop at the @
> character
> 
> As per your suggestion , I have written like this.
> 
> my $project="aic_8.0wewew@/vobs/pvob_aic";
> print "$project\n";
> my ($pvob) = ($project =~ m{(.+@)});
> print "$pvob\n";
> 
> and now it is taking @ in output so now how Perl knows that it has to
> stop at @ character.
> 
> As per my understanding, (.+) this means any character with any no. of
> times then why it is not taking all the character.
> 
> why the output is not coming as "aic_8.0wewew@/vobs/pvob_aic" and why it
> is coming as aic_8.0wewew@

Because the whole regexp has to match, not just the (.+). So what the 
regexp engine does with that regexp is that it first matches the .+ 
to the whole string, finds out there is nothing left so the @ cannot 
match, it backs one character so the .+ now matches only 
"aic_8.0wewew@/vobs/pvob_ai" and tries whether @ matches "c", finds 
out that it doesn't, backtracks some more until .+ matches only 
"aic_8.0wewew" at what point the @ can match and as it's the last 
thing in the regexp we are done.

You might try to install "The Regex Coach" http://weitz.de/regex-
coach/
and play with a bit it to get a better graps of regexps.

Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
        -- Terry Pratchett in Sourcery


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


Reply via email to