Re: [Fwd: [Fwd: Re: what is going on here?]]
On 2009 Jan 11, at 3:50, Richard Hainsworth wrote: To be precise - why the ':' after the sort? '%players.sort' calls the 'sort' method/sub on the hash '%players'. '{.value}' runs '.value' on $_ at some point. But when? So once again, what is the ':' doing? How else could this code be written? I think I have this right: perl5 has indirect object syntax, which is ambiguous (the parse of a program can change by whether perl5 had previously seen a sub by that name). In perl6, the colon is required to signify an indirect object, even if there are no following parameters. -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allb...@kf8nh.com system administrator [openafs,heimdal,too many hats] allb...@ece.cmu.edu electrical and computer engineering, carnegie mellon universityKF8NH
[Fwd: [Fwd: Re: what is going on here?]]
thanks for the response, but i was really looking for a bit more detail. To be precise - why the ':' after the sort? '%players.sort' calls the 'sort' method/sub on the hash '%players'. '{.value}' runs '.value' on $_ at some point. But when? So once again, what is the ':' doing? How else could this code be written? Hal Wigoda wrote: the first line creates a hash, the second line sorts the hash values into an array. the third loops thru the array values printing one array member per line On Jan 10, 2009, at 2:26 PM, Richard Hainsworth wrote: Could someone help me understand what is going on in the following snippet? my %players = {'william'=>2, 'peter'=>3,'john'=>1,'mary'=>5}; my @ranking = %players.sort: { .value }; for @ranking {.say}; I cut and pasted from Patrick's blog on sorting and played around to get an array. But ... I dont understand what is being passed to @ranking. More precisely, I dont understand the meaning of the ':' after '.sort' Where is this behaviour described? I looked in WITCH under : but couldnt really understand it :(