"be consistent" | |
PerlMonks |
Re: qr// for Expect.pm problemby BrowserUk (Patriarch) |
on Jun 25, 2011 at 19:26 UTC ( [id://911392]=note: print w/replies, xml ) | Need Help?? |
Could you please enlighten me to what am I doing wrong? When you interpolate the string $number_string into the regex qr/.*$card,$sim.*$number_string.*/ the backslash you originally had on the '+' sign is effectively 'used up'. So by the time the regex comes to be used, that '+' will be treated as a regex meta character, specifically a quantifier modifier, for the preceding space. Often when interpolating a string into a regex, the way to ensure any meta-like characters within as treated as literals is to bracket the interpolated variable in \Q and \E. eg. qr/.*$card,$sim.*\Q$number_string\E.*/. But as the string actually contains meta-characters that you want recognised as such, the other option is to double the backslashes on the '+' so that one remains by the time the regex is used. Ie.
Which should resolve this particular problem. Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
In Section
Seekers of Perl Wisdom
|
|