Moose::Autoboxでシュワルツ変換

#!/usr/bin/env perl
use strict;
use warnings;
use Moose::Autobox;
use Perl6::Say;

my $a = [ 
    '1993,Richard E. Stearns',
    '1994,Edward Feigenbaum',
    '1991,Robin Milner',
    '1990,Fernando J. Corbato',
    '1996,Amir Pnueli',
    '1997,Douglas Engelbart',
    '1998,James Gray',
    '1993,Juris Hartmanis',
    '1992,Butler W. Lampson',
    '1994,Raj Reddy',
    '1995,Manuel Blum',
];

say $a->map( sub { [ split /,/ ] } ) 
      ->sort( sub { my ( $a, $b ) = @_; $b->[0] <=> $a->[0] || $a->[1] cmp $b->[1];})
      ->map( sub { join &#39;,&#39;, @$_ } ) 
      ->dump;

普通にシュワルツ変換を書くと、下から上に読まないといけないのが少し気持ち悪いですが、これだと上から下に読めるのでプログラムが自然に読めていいですね。

moooooooooooooooooooooooose !