Whoops, that didn't work at all. Forgot about the %foo<<bar>><<baz>> case
and it was losing the subscripts entirely. 

Let's try that again...

http://www.cpan.org/modules/by-authors/id/S/SW/SWALTERS/Perl6-Variables-0.02_002.tar.gz
http://slowass.net/~scott/Perl6-Variables-0.02_002.tar.gz

This version still doesn't handle %foo{'bar'}<<baz>>.

Thanks,
-scott


On  0, Scott Walters <[EMAIL PROTECTED]> wrote:
> 
> I've updated Damian's Perl6::Variables module to treat %foo{bar} as %foo{bar()}
> and to handle %foo<<bar>> and %foo<<bar baz>>. If this syntax is finalized, I'll
> send Damian a patch. 
> 
> This is at:
> 
> http://www.cpan.org/modules/by-authors/id/S/SW/SWALTERS/Perl6-Variables-0.02_001.tar.gz
> http://slowass.net/~scott/Perl6-Variables-0.02_001.tar.gz
> 
> I'm eager to hear if %foo<<bar>> becomes permanent. Bug reports welcome.
> 
> I'm not supporting the utf-8 version of << >> because all of my software
> handles them incorrectly in different ways but if there is enough demand, I might
> accept a patch. (Just kidding, I will accept a patch).
> 
> -scott
> 
> PS:
> 
> The other thing I was threatening to write, hyper operators in P5 via overload
> and hyper keyword, well, I couldn't quite get it to work in a useful way. 
> Couldn't figure out how to get real arrays out of an over loaded op, and from 
> what I know about P5, I don't think it is possible.
> 
> You can do whatever you like with this excpet time-shift it or view it on Linux.
> 
> 
> On  0, Larry Wall <[EMAIL PROTECTED]> wrote:
> > 
> > On Mon, Mar 15, 2004 at 11:56:26AM -0700, John Williams wrote:
> > : On Wed, 10 Mar 2004, Larry Wall wrote:
> > : > You subscript hashes with {...} historically, or these days, «...»,
> > : > when you want constant subscripts.  So what you're looking for is
> > : > something like:
> > : >
> > : >     if / <?foo> ... <?baz> ... { $?foo{'baz'} ... $?baz } .../
> > : > or
> > : >     if / <?foo> ... <?baz> ... { $?foo«baz» ... $?baz } .../
> > : 
> > : I'm probably a bit behind on current thinking, but did %hash{bareword}
> > : lose the ability to assume the bareword is a constant string?
> > 
> > It's thinking hard about doing that.  :-)
> > 
> > : And why «»?  Last I heard that was the unicode version of qw(), which
> > : returns an array.  Using an array constructor as a hash subscriptor is
> > : not a "least surprise" to me.
> > 
> > We'd be trading that surprise for the surprise that %hash{shift} doesn't
> > call C<shift>.  Plus we get literal hash slices out of it for free.
> > Plus it also works on pair syntax :foo«some literal words».  And probably
> > trait and property syntax as well.
> > 
> > And basically because I decided :foo('bar') is too ugly for something
> > that will get used as often as switches are on the unix command line.
> > The %hash syntax is just a fallout of trying to be consistent with
> > the pair notation.  Once people start seeing :foo«bar» all over,
> > they won't find %hash«bar» surprising at all, and will appreciate the
> > self-documenting literalness of argument.
> > 
> > And unfortunately it's an unavoidable part of my job description to
> > decide how people should be surprised.  :-)
> > 
> > Larry

Reply via email to