On Mon, May 29, 2006 at 05:28:53PM -0700, Ovid wrote:
>
> Now that I read what I wrote, I guess that might have sounded a bit
> annoying for me to mention that I would change things but then not
> mention what I would change.
> 
> Much of the changes would be stylistic in nature, but not all (I'm
> running this against Pugs and assuming it's correct).  Here's my take on
> it:
> 
>   #!/usr/bin/pugs
>   
>   print "content-type: text/html\n\n";
>   my %q;
> 
>   for %ENV<QUERY_STRING>.split('&') -> $nv {
>       my ($n, $v) = $nv.split('=');
>       decode($n);
>       decode($v);
> 
>       %q{$n} = [] unless %q.exists($n);
>       # %q{$n} //= []; # first try, but I don't think it's correct
>       %q{$n}.push($v);
Why not let this auto-vivify? E.g.:

$ pugs -e 'my %e; %e<a>.push: 1,2,3; say %e;'
a       1 2 3

I'm kind of surprised that worked, with the OO syntax.  But is it
considered bad style?  I use it constantly in perl5... those constant tests
for existence are so obnoxious in other languages, though I like Ruby's
approach.

joel

Reply via email to