Acme-Glue
view release on metacpan or search on metacpan
snippets/LEEJO/transform.pl view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use feature qw/ say /;
my $required_order = [ @ARGV ];
my $chaos = [
{
1 => 'Liz',
2 => 'Nat',
3 => 'Lee',
},
];
# transform an array of hashes into an array of arrays where each array
# contains the values from the hash sorted by the original hash keys or
# the passed order of columns (hash slicing)
my @ordered = @{ $required_order // [] }
? map { [ @$_{ @{ $required_order } } ] } @{ $chaos }
: map { [ @$_{sort keys %$_} ] } @{ $chaos };
say join( ",",map { @{ $_ } } @ordered );
( run in 0.885 second using v1.01-cache-2.11-cpan-63c85eba8c4 )