On Wed, Jul 21, 2004 at 11:06:55PM +0200, Juerd wrote:
: Larry Wall skribis 2004-07-21 10:24 (-0700):
: >     Interpolates
: >     No        Yes
: >     --        ---
: >     @foo      @foo[1]
: >     %bar      %bar{"a"}
: >     $foo.bar  $foo.bar()
: 
: Oh, please don't do that.
: 
: Whatever interpolation thing is invented, make it SIMPLE. Allowing
: @foo[1], but not @foo is not simple.

It's "simple" in a different dimension, as the chart shows.

: In fact, with {}, is anything more than $foo and {} needed? Is $foo
: needed, even (I'd like to have it, because I dislike brackets
: everywhere)?

In theory we could require {} even on {$foo}.  But we will certainly
allow bare $foo just because you asked for it.  :-)

The rest is negotiable.  I think we'll have riots if we don't at least
allow @foo[1] and %bar{"a"}.  We've never allowed %foo by itself.
We allowed/required @foo to interpolate in Perl 5, and it catches a
certain number of people off guard regularly, including yours truly.
So I can argue [EMAIL PROTECTED] both ways.

We've never allowed methods or sub calls.  We obviously can't
interpolate sigil-less foo().  We've flip-flopped about $foo.bar,
because it's definitely problematic either way.  I still like my chart.
We could add another line to it that fits the same pattern:

    No          Yes
    --          ---
    @foo        @foo[1]
    %bar        %bar{"a"} or %barŤať
    $foo.bar    $foo.bar()
    &foo        &foo(1)

In this worldview, $foo is an exception only because it doesn't naturally
have a form that ends with some kind of bracket.

Larry

Reply via email to