> Brent Roman wrote:
> 
>> If so, maybe something like:
>>
>> t\4:30:19AM\
>>
>> This would call Kernel::Literal::Prefix.t ('4:30:19AM')
>> Or, if you'd rather have a suffix:
>>
>> \3/2\r
>>
>> calls  Kernel::Literal::Suffix.r ('3/2')
>>
>> There's no reason one could not have 'I' for quaternians and 'i' for imaginary numbers, etc.
>> Further, Prefixes and Suffixes need not be single letters:
>>
>> \-122.12'40"\Long
>> \+37.19'59"\Lat
>>
>> call Kernel::Literal::Suffix.Long ('-122.12\'40"')
>> and Kernel::Literal::Suffix.Lat ('+37.19\'59"')
>> respectively

 > Florian Gross responded:
> 
> But if it's already so hard to find support for the relatively simple and straight-forward patch from earlier, how are you going to get support for this? Note that I'm not entirely against this, but I think \3/2\r is a bit too complex for the simple number literal cases.
> 
> Somehow I have the feeling that what you want to do could be accomplished with String suffixes. (Though I do not need this.)
> 
> What do you think?
> 

By "String suffixes" I assume you mean numeric literal suffixes 
implemented in Peter's patch.  Correct?

I don't think that this can cope with any of the examples I give above 
except for the 3/2r for which it was intended.  Show me how I might
use this patch to represent real-world literals containing the tic 
marks, double quotes, multiple dots, AM/PM and the like and I will be 
much more likely to support its inclusion into the core.

I'd prefer to see a general mechanism incorporated rather than a patch
for constrained cases.  My clunky \3/2\r could be streamlined by making
this simple numeric case a special shortcut that does not require the
delimiters.  [Much as simple arguments to outer method calls can omit
parentheses.]  Seeing a token that begins with a digit, the lexer would
continue until the next character that is not a \.|digit|alpha.  So,

   3/2r+2  would be syntactically equivalent to  3/\2\r+2

both evaluate as:

	3 / Kernel::Literal::Suffix.r('2') + 2

And,

   4*100UL/2  would be syntactically equivalent to 4*\100\UL/2

both evaluate as:

	4 * Kernel::Literal::Suffix.UL('100') / 2

Note that some european countries write time as hh.mm.ss  If repeated 
dots are allowed in the unquoted form, those folks might be able to save
a typing few backslashes.
   (as just compensation for umlauts, I suppose ;-)

I'm not concerned about the details of how a user defined literal 
facility is implemented.  Just so long as it does not increase the size 
of the core significantly and it allows arbitrary strings to function as 
Object literals.  The above was just an example to show what I was after.

Am I the only one interested in such a facility?


- brent