* Michael Mathews <[EMAIL PROTECTED]> [2006-05-28 11:40]:
> #!/usr/bin/pugs
> 
> say "content-type: text/html\n\n";
> my %q = ();
> my @q = split '&', %ENV.{'QUERY_STRING'};
> for (@q) {
>       my ($n, $v) = split '=', $_;
>       
>       # TODO: deal with URI encoding
>       # similar to perl5: s/%(..)/pack("c",hex($1))/ge;
>       
>       #TODO: handle multiple values and same key
>       
>       %q.{$n} = $v;
> }
> 
> for (%q.keys) { say $_, " => ", %q.{$_}, "<br>"; }

Flying blindly (ie. no Pugs installed):

    my @q = split /&/, %ENV<QUERY_STRING>
        ==> map { split /=/, $_, 2 }
        ==> map { $_ # TODO: deal with URI encoding };

    say "Content-type: text/plain\n\n";
    for @q -> $key, $val { say "$key => $val" } }

I’d like to know if there’s a way to write `split` as a method
call, though, in which case the explicit `$_` could go away by
merely invoking the `split` method on the topic, something like
this maybe:

    map { .split /=/, 2 }

I’d also like to know if there’s a way to use the `->` pointy
with `map` in order to walk lists several elements at a times and
to assign name(s) for the iterator(s) instead of having to use
the topic.

Regards,
-- 
#Aristotle
*AUTOLOAD=*_;sub _{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1};
&Just->another->Perl->hacker;

Reply via email to