# New Ticket Created by Vasily Chekalkin # Please include the string: [perl #59396] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=59396 >
Hello. There is implementation of Hash.reverse -- Bacek
diff --git a/languages/perl6/src/classes/Mapping.pir b/languages/perl6/src/classes/Mapping.pir index ec9824f..7b9aace 100644 --- a/languages/perl6/src/classes/Mapping.pir +++ b/languages/perl6/src/classes/Mapping.pir @@ -18,7 +18,7 @@ src/classes/Mapping.pir - Perl 6 hash class and related functions mappingproto = p6meta.'new_class'('Mapping', 'parent'=>'Hash Any') p6meta.'register'('Hash', 'parent'=>mappingproto, 'protoobject'=>mappingproto) $P0 = get_hll_namespace ['Mapping'] - '!EXPORT'('keys kv values', $P0) + '!EXPORT'('keys kv values reverse', $P0) .end @@ -114,6 +114,24 @@ Returns elements of hash as array of C<Pair(key, value)> .end +=item reverse + +=cut + +.sub 'reverse' :method :multi('Hash') + .local pmc result, iter + result = new 'Perl6Hash' + iter = new 'Iterator', self + iter_loop: + unless iter goto iter_end + $S0 = shift iter + $S1 = self[$S0] + result[$S1] = $S0 + goto iter_loop + iter_end: + .return (result) +.end + =item pairs (method) Returns elements of hash as array of C<Pairs>