aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-286/kjetillll/perl/ch-1.pl3
-rw-r--r--challenge-286/kjetillll/perl/ch-2.pl9
2 files changed, 12 insertions, 0 deletions
diff --git a/challenge-286/kjetillll/perl/ch-1.pl b/challenge-286/kjetillll/perl/ch-1.pl
new file mode 100644
index 0000000000..263f9fdbd2
--- /dev/null
+++ b/challenge-286/kjetillll/perl/ch-1.pl
@@ -0,0 +1,3 @@
+open my $fh, '<', $0 or die;
+my @words = map /\S+/g, <$fh>;
+print $words[rand(0+@words)], "\n";
diff --git a/challenge-286/kjetillll/perl/ch-2.pl b/challenge-286/kjetillll/perl/ch-2.pl
new file mode 100644
index 0000000000..e294a33a18
--- /dev/null
+++ b/challenge-286/kjetillll/perl/ch-2.pl
@@ -0,0 +1,9 @@
+use strict; use warnings; use List::Util qw(min max); use Test::More tests=>3;
+
+sub order_game {
+ @_==1 ? pop : order_game( map [\&max,\&min]->[ $_ & 1 ]->( shift, shift ), 1 .. @_/2 )
+}
+
+is order_game(2,1,4,5,6,3,0,2) => 1;
+is order_game(0,5,3,2) => 0;
+is order_game(9,2,1,4,5,6,0,7,3,1,3,5,7,9,0,8) => 2;