aboutsummaryrefslogtreecommitdiff
path: root/challenge-032/arne-sommer/perl6/abc
blob: 65c515851779c913e16abd1aec04ca9c2790c8e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#! /usr/bin/env raku

unit sub MAIN (Str :$sort where $sort eq any("", "values", "labels") = "");

my $data = { apple => 3, cherry => 2, banana => 1 };

generate_bar_graph($data, $sort);

sub generate_bar_graph ($data, $sort)
{
  my $max = %($data).keys>>.chars.max;

  my @keys = %($data).keys;

  if $sort eq "values"
  {
    @keys = @keys.sort({ %($data){$^b} cmp %($data){$^a} });
  }
  elsif $sort eq "labels"
  {
    @keys = @keys.sort;
  }

  for  @keys -> $label
  {
    say "{ " " x ($max - $label.chars) }$label | { "#" x 4 * %($data){$label} }"; 
  }
}