On Sat, 21 Sep 2002, Jonathan Scott Duff wrote: > > Why can't perl be smart enough to figure out what we mean? Something > along these lines: > > (7) # list context > (3+4) # numeric context (there's a numeric operator in there) > (3+4,5) # list context (comma trumps the numeric op)
My understanding of context (which admittedly, may be completely incorrect) is that context is imposed from the outside. So in (3+4), 3 and 4 are in numeric contect because the '+' says so, but we can't tell what context (...) is in, because there is no context. + has higher precendence than comma, so the 3+4 becomes 7 before the comma creates a list: 7,5. A different workaround just occurred to me for perl6. Maybe instead of (7) having list context imposed by the parenthesis, imposing list context on a scalar automatically creates a 1 item list. So: @a = (7); is the same as @a = 7; And actually, that works in perl5 too. So maybe we're arguing about nothing? > (7,) is an abomination. It's one of python's misfeatures that annoys > me the most. Strangely enough, it's one of the features of perl that I really like, although you have to think of it in the context of ( 'a', 'long', 'list', 'of', 'items', 'one', 'per', 'line', # <-- notice the comma! ) Of course, _requiring_ the comma is bad, but as long as we can use [7] or rely on list context creating a single item list out of a single item, it is not required. ~ John Williams