Jonathan Scott Duff skribis 2004-09-17  9:57 (-0500):
>       [foo]~5                 # match exactly 5 times
>       [foo]~{0...}            # verbose [foo]*
>       [foo]~{1...}            # verbose [foo]+
>       [foo]~{1..5}            # match from 1 to 5 times
>       [foo]~{[1,3,5]}         # match exactly 1, 3, or 5 times
>       [EMAIL PROTECTED]               # treat each element of @foo as a
>                               # number and only match that
>                               # many times. (same as previous
>                               # basically)
>       [foo]~{&foo}            # match based on the return value of &foo
>       [foo]~{%foo}            # ???
>   And surely these can be made to work:
>       [foo]~[0...]            # [foo]:[0...]
>       [foo]~[1,3,5]           # [foo]:[1,3,5]
>       [EMAIL PROTECTED]               # [foo]:@foo

Easier:
    
    Variable  Literal
    
    \d~$foo   \d~5, \d~1..5  # Range object or integer.
    
    [EMAIL PROTECTED]   \d~[...]       # \d~any(...)
    
    \d~&foo   \d~{...}       # Depending on what the closure returns.
    
Obviously, $foo can also be an arrayref or coderef.

I think whitespace around the ~ can be made valid without making
anything ambiguous. The expression at its right side should not have
whitespace in it. If it does have whitespace, [] or {} is needed to
disambiguate.


Juerd

Reply via email to