aboutsummaryrefslogtreecommitdiff
path: root/challenge-034/arne-sommer/perl6/pre-dispatch-sub
blob: a0a0305ea0cce7680a103518a59e8694c5325066 (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
29
30
31
32
33
34
35
36
37
38
39
40
#! /usr/bin/env raku

my $value = 0;

loop
{
  my $command = prompt "[$value]: ";

  if    $command eq "q" | "quit"   { last; }
  elsif $command eq "d" | "double" { double; }
  elsif $command eq "h" | "half"   { half; }
  elsif $command eq "c" | "clear"  { clear; }
  elsif $command ~~ /^(\d)$/       { set($0.Int); }
  elsif $command eq "help"         { help; }
}

sub double
{
  $value *= 2;
}

sub half
{
  $value /= 2;
}

sub clear
{
  $value = 0;
}

sub set ($new)
{
  $value = $new;
}

sub help
{
  say "Please consult a doctor.";
}