At 13:05 2002.01.16, Leon wrote:
>----- Original Message -----
>From: <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Cc: <[EMAIL PROTECTED]>
>>
>> | $key=~/^r(\d+)c(\d+)$/
>>          ||\___/|\___/|
>>          ||  |  |  |  `---- end of string
>>          ||  |  |  `------- one or more digits => $2
>>          ||  |  `---------- the letter 'c'
>>          ||  `------------- one or more digits => $1
>>          |`---------------- the letter 'r'
>>          `----------------- beginning of string
>>
>> Matching $key's would be 'r123c47' or 'r0c99999'.
>
>Fantastic ! Surely the above 'diagram' takes you sometime to type. Its very
>artistic, did you actually type it or use some script.
>Thanks


Less artistic but easier to do would be:

$key=~/^        # beginning of string
        r       # the letter 'r'
        (\d+)   # one or more digits => $1
        c       # the letter 'c'
        (\d+)   # one or more digits => $2
        $       # end of string
        /x;     # Use extended regular expressions.

and it parse properly in your code (not to mention that the comments are in order).

Here's a quote from Programing Perl:

"The /x modifier itself needs a little more explanation. It tells the regular 
expression parser to ignore whitespace that is not backslashed or within a character 
class. You can use this modifier to break up your regular expression into (slightly) 
more readable parts. The # character is also treated as a metacharacter introducing a 
comment, just as in ordinary Perl code. Taken together, these features go a long way 
toward making Perl a readable language."

We might as well get use to it. I think I read somewhere that it is going to be the 
default behavior of the m// and s/// operators in Perl 6.

Best 


-----------------------------------------------------------
Éric Beaudoin                <mailto:[EMAIL PROTECTED]>


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to